Перейти к содержанию
+7 (916) 525-11-34 Заказать звонок →
← Блог о СЕО

API Яндекс Wordstat: как получать частотность и динамику запросов

API Яндекс Wordstat: как получать частотность и динамику запросов


SEOProvision

Два файла с названием result.json могут выглядеть одинаково, хотя один собран по Москве с компьютеров, а второй — по всей России со всех устройств. API Wordstat ускоряет регулярную выгрузку, но без сохранённых параметров быстрее размножает ошибку. Начните с вопроса к данным, а параметры сохраните вместе с ответом.

Сначала выберите вопрос, потом метод

Метод topRequests нужен, когда вы хотите увидеть запросы, связанные с исходной фразой, и оценить состав спроса. Он помогает заметить разные намерения: заказать услугу, узнать цену, выполнить работу самостоятельно или найти конкретный инструмент.

Метод dynamics отвечает на другой вопрос: как менялась частотность во времени. В его ответе важны даты, значение count и относительная доля share. Это временной ряд, а не список формулировок.

Не складывайте ответы двух методов: список формулировок и временной ряд отвечают на разные вопросы и не образуют одну метрику. Сначала запишите цель выгрузки одной фразой: «найти варианты запросов по теме» или «проверить устойчивость спроса за период». Это простое решение определяет endpoint и структуру последующей обработки.

Доступ собирается без токена в исходном коде

Актуальный Wordstat API работает внутри Yandex Search API. Для вызова нужен сервисный аккаунт с подходящей ролью, API-ключ с областью действия сервиса или IAM-токен, а также идентификатор каталога folderId.

Секрет не вставляют в файл, который попадёт в репозиторий. Передайте его через переменную окружения или хранилище секретов среды запуска. В примерах ниже стоят условные значения; заменять их реальным ключом прямо в коде не нужно.

Authorization: Api-key <API_KEY>
Content-Type: application/json

Перед первым рабочим запуском проверьте права на тестовой фразе. Ошибка авторизации должна останавливать задачу, а не создавать пустой JSON, который следующий этап примет за отсутствие спроса.

Топ запросов начинается с минимального POST

Для первого вызова достаточно фразы, идентификаторов регионов, типов устройств и folderId. Москва в Wordstat имеет идентификатор 213; для другого рынка подставьте подходящий регион, а не копируйте значение вслепую.

{
"phrase": "seo аудит сайта",
"regions": ["213"],
"devices": ["DEVICE_ALL"],
"folderId": "<FOLDER_ID>"
}

Тело отправляют POST-запросом к методу topRequests. В ответе сохраняйте не только частотность, но и саму формулировку. Если скрипт оставит одни числа, вы не сможете понять, какие намерения были объединены и почему итог изменился.

Начните с одной фразы и откройте ответ глазами: на месте ли поля, не испортилась ли кириллица, чем обозначен пустой результат. Только после этого добавляйте список фраз и параллельные задачи. Так ошибка в одном преобразовании не размножится на всю семантику.

Динамика требует границ периода

Для dynamics укажите тип агрегации, начало и конец интервала. Официальный метод поддерживает дневной, недельный и месячный период. При недельной агрегации начало должно приходиться на понедельник, а окончание — на воскресенье; для месяца используются его первый и последний день.

{
"phrase": "seo аудит сайта",
"period": "PERIOD_WEEKLY",
"fromDate": "2026-06-01T00:00:00Z",
"toDate": "2026-06-28T00:00:00Z",
"regions": ["213"],
"devices": ["DEVICE_DESKTOP"],
"folderId": "<FOLDER_ID>"
}

Для недельной и месячной детализации не переносите сложную строку операторов из ручного Wordstat: метод поддерживает там только оператор «+». Полный набор операторов доступен при детализации по дням. Если это ограничение проигнорировать, запрос не станет «примерно правильным» — его контракт уже другой.

В ответе связывайте каждое значение count с датой. Поле share помогает оценивать долю фразы в общем объёме запросов за тот же отрезок, но не заменяет абсолютное значение. Для сравнения рядов оставляйте одинаковыми регионы, устройства, оператор и период агрегации.

Лимиты обрабатывают паузой, а не циклом

HTTP 429 означает, что запросы упёрлись в доступный лимит. HTTP 503 может указывать на исчерпание общей квоты или временную недоступность сервиса. Немедленный повтор в бесконечном цикле только увеличивает нагрузку и скрывает исходную проблему.

  1. Сохраните код ответа и текст ошибки.
  2. Если сервис сообщил время пополнения лимита, дождитесь его.
  3. Для временного сбоя увеличивайте паузу между попытками.
  4. Ограничьте число повторов и завершите задачу с явной ошибкой.
  5. Не повторяйте автоматически ошибки авторизации и неверного тела запроса.

После HTTP 200 проверьте ожидаемый массив и обязательные поля каждой записи. Иначе HTML ошибки или изменённая структура ответа могут попасть в хранилище под видом нормальной выгрузки. Проверьте структуру до записи итогового файла. Пустой ответ храните как отдельное состояние, а не как нулевую частотность.

Паспорт выгрузки важнее имени файла

Рядом с данными сохраните короткий паспорт. Он превращает выгрузку из анонимного файла в воспроизводимый замер:

  • метод и endpoint;
  • исходная фраза и оператор;
  • regions и devices;
  • period, fromDate и toDate для динамики;
  • время запроса, HTTP-статус и число попыток;
  • версия скрипта, который преобразовал ответ.

Сравнивать две выгрузки можно после проверки этих полей. Если регионы или период различаются, расхождение не доказывает изменение спроса. Сначала повторите запрос с одинаковым контрактом.

API решает задачу доставки данных, но не выбирает намерение, структуру страницы и приоритет темы. SEOProvision связывает выгрузку с аналитикой и контентом, когда ведёт комплексное SEO-продвижение сайта.

Интеграция готова, если коллега без устных подсказок повторяет POST по паспорту и получает сопоставимый результат. Скорость без этой проверки лишь быстрее производит файлы, которым нельзя доверять.

Оставьте заявку, мы свяжемся с вами в ближайшее время.

Оставьте заявку, мы свяжемся с вами в ближайшее время.

Оставьте ваши контактные данные, мы свяжемся с вами в ближайшее время.

Или Вы можете связаться прямо сейчас: +7 (916) 525-11-34

Реквизиты организации

Наименование: Индивидуальный предприниматель Сапожников Никита Сергеевич ИНН: 772605497385 Банк: ООО «Банк Точка» Расчётный счёт: 40802810620000727099 Корреспондентский счёт: 30101810745374525104 БИК: 044525104

Проект №1 – продвижение действующего интернет-магазина

Регион продвижения: Москва и Московская область
Старт SEO-работ над сайтом: 08.2024
Месячная прибыль сайта после SEO: 2 000 000 руб./мес Хочу также!

Проект №2 – разработка и продвижение интернет-магазина с нуля

Регион продвижения: Москва и Московская область
Старт разработки сайта и SEO-работ: 10.2024
Месячная прибыль сайта после SEO: 4 000 000 руб./мес Хочу также!

Проект №3 – разработка и продвижение интернет-магазина с нуля

Регион продвижения: Москва и Московская область
Старт разработки сайта и SEO-работ: 01.2025
Месячная прибыль сайта после SEO: 400 000 руб./мес Хочу также!

Проект №4 – разработка и продвижение корпоративного сайта в Яндекс с нуля

Регион продвижения: Москва и Московская область
Старт разработки сайта и SEO-работ: 05.2025
Месячная прибыль сайта после SEO: 570 000 руб./мес Хочу также!

Проект №5 – разработка и продвижение корпоративного сайта в Яндекс с нуля

Регион продвижения: Москва и Московская область
Старт разработки сайта и SEO-работ: 01.2025
Месячная прибыль сайта после SEO: 390 000 руб./мес Хочу также!
✉