Получить динамику изменений частоты запросов по ключевой фразе

Wordstat позволяет узнать, как изменяется частота запросов с ключевой фразой с помощью REST-метода или gRPC-вызова GetDynamics.

Примечание

Функциональность находится на стадии Preview.

Чтобы воспользоваться примером, создайте сервисный аккаунт с ролью search-api.webSearch.user и получите для него API-ключ с областью действия yc.search-api.execute. Также вы можете использовать IAM-токен как более безопасный способ. Подробнее об аутентификации в Yandex Search API.

  1. Создайте файл с телом запроса (например, body.json):

      {
             "phrase": "<ключевая_фраза>",
             "period": "PERIOD_WEEKLY",
             "fromDate": "2025-12-01T00:00:00Z",
             "toDate": "2025-12-14T00:00:00Z",
             "regions": ["213"],
             "devices": ["DEVICE_DESKTOP"],
             "folderId": "<идентификатор_каталога>"
            }
            

    Где:

    • phrase — ключевая фраза запроса, поддерживает поисковые операторы.

      Примечание

      Метод GetDynamics поддерживает все операторы при детализации по дням. При детализации по неделям и месяцам — только оператор +.

    • period — период агрегации запросов по времени. Возможные значения:

      • PERIOD_MONTHLY: агрегация за месяц.
      • PERIOD_WEEKLY: агрегация за неделю.
      • PERIOD_DAILY: агрегация за день.
    • fromDate — дата и время начала периода, за который запрашиваются данные, в виде строки в формате RFC3339. Для агрегации за неделю и месяц — понедельник или первый день месяца.

    • toDate — дата и время окончания периода, за который запрашиваются данные, в виде строки в формате RFC3339. Для агрегации за неделю и месяц — воскресенье или последний день месяца.

    • regions — список идентификаторов регионов, откуда был задан запрос, например, 213 — Москва. По умолчанию учитываются запросы из любого региона.

    • devices — список типов устройств, с которых был задан запрос. Возможные значения:

      • DEVICE_ALL: все устройства.
      • DEVICE_DESKTOP: компьютеры.
      • DEVICE_PHONE: телефоны.
      • DEVICE_TABLET: планшеты.
    • folderIdидентификатор каталога вашего сервисного аккаунта.

  2. Выполните HTTP-запрос, указав полученный ранее API-ключ или IAM-токен и путь к файлу с телом запроса:

    • Аутентификация с IAM-токеном:

      curl \
                --request POST \
                --header "Authorization: Bearer <IAM-токен>" \
                --data "@body.json" \
                "https://searchapi.api.cloud.yandex.net/v2/wordstat/dynamics" \
                > result.json
              
    • Аутентификация с API-ключом:

      curl \
                --request POST \
                --header "Authorization: Api-key <API-ключ>" \
                --data "@body.json" \
                "https://searchapi.api.cloud.yandex.net/v2/wordstat/dynamics" \
                > result.json
              

    Результат будет сохранен в файл result.json.

    Пример ответа
    {
              "results": [
                {
                  "date": "2025-12-01T00:00:00Z",
                  "count": "1999",
                  "share": 0.002010327532236065
                },
                {
                  "date": "2025-12-08T00:00:00Z",
                  "count": "3095",
                  "share": 0.0031681796592690848
                }
              ]
            }
            
  1. Создайте файл с телом запроса (например, body.json):

      {
             "phrase": "<ключевая_фраза>",
             "period": "PERIOD_WEEKLY",
             "from_date": "2025-12-29T00:00:00Z",
             "to_date": "2026-01-18T00:00:00Z",
             "regions": ["213"],
             "devices": ["DEVICE_DESKTOP"],
             "folder_id": "<идентификатор_каталога>"
            }
            

    Где:

    • phrase — ключевая фраза запроса, поддерживает поисковые операторы.

      Примечание

      Метод GetDynamics поддерживает все операторы при детализации по дням. При детализации по неделям и месяцам — только оператор +.

    • period — период агрегации запросов по времени. Возможные значения:

      • PERIOD_MONTHLY: агрегация за месяц.
      • PERIOD_WEEKLY: агрегация за неделю.
      • PERIOD_DAILY: агрегация за день.
    • from_date — дата и время начала периода, за который запрашиваются данные, в виде строки в формате RFC3339. Для агрегации за неделю и месяц — понедельник или первый день месяца.

    • to_date — дата и время окончания периода, за который запрашиваются данные, в виде строки в формате RFC3339. Для агрегации за неделю и месяц — воскресенье или последний день месяца.

    • regions — список идентификаторов регионов, откуда был задан запрос, например, 213 — Москва. По умолчанию учитываются запросы из любого региона.

    • devices — список типов устройств, с которых был задан запрос. Возможные значения:

      • DEVICE_ALL: все устройства.
      • DEVICE_DESKTOP: компьютеры.
      • DEVICE_PHONE: телефоны.
      • DEVICE_TABLET: планшеты.
    • folder_idидентификатор каталога вашего сервисного аккаунта.

  2. Выполните gRPC-вызов, указав полученный ранее API-ключ или IAM-токен и путь к файлу с телом запроса:

    • Аутентификация с IAM-токеном:

      grpcurl \
                -rpc-header "Authorization: Bearer <IAM-токен>" \
                -d @ < body.json \
                searchapi.api.cloud.yandex.net:443 yandex.cloud.searchapi.v2.WordstatService/GetDynamics \
                > result.json
              
    • Аутентификация с API-ключом:

      grpcurl \
                -rpc-header "Authorization: Api-Key <API-ключ>" \
                -d @ < body.json \
                searchapi.api.cloud.yandex.net:443 yandex.cloud.searchapi.v2.WordstatService/GetDynamics \
                > result.json
              

    Результат будет сохранен в файл result.json.

    Пример ответа
    {
              "results": [
                {
                  "date": "2025-12-01T00:00:00Z",
                  "count": "1999",
                  "share": 0.002010327532236065
                },
                {
                  "date": "2025-12-08T00:00:00Z",
                  "count": "3095",
                  "share": 0.0031681796592690848
                }
              ]
            }