Анализ сайта
Вход

API: Получение проектов, регионов и позиций и ключевых слов

Через API можно выгрузить свои проекты, их поисковые настройки (регион, поисковик, устройство) и позиции ключевых слов с историей. Порядок всегда один: проект → настройка съёма → позиции.

Перед началом: получите API-ключ в настройках.


Шаг 1. Получить проекты

curl --globoff 'https://apis.pr-cy.ru/api/v2.1.0/projects?include=keywordsSummariesStats&filter[statuses]=active&page[limit]=10&page[offset]=0' \
  --header 'Content-Type: application/vnd.api+json' \
  --header 'Api-Key: ВАШ_КЛЮЧ'
Параметр Описание
filter[statuses] active — рабочие проекты, hold — на паузе
include=keywordsSummariesStats Добавляет сводку по позициям: сколько запросов в топ-3, топ-10, топ-30, средняя позиция и динамика
page[limit], page[offset] Постраничная выдача

В ответе data[].id — ID проекта, он понадобится дальше. В attributes лежат домен, статус, даты и признаки подключённых сервисов (metrikaConnected, gaConnected, gscConnected, webmasterConnected), а в meta — сколько всего проектов активных, на паузе и удалённых.

{
  "data": [
    {
      "type": "projects",
      "id": "152839",
      "attributes": { "domain": "upvote.club", "status": "active", "metrikaConnected": true }
    }
  ],
  "included": [
    {
      "type": "keywordsSummariesStats",
      "id": "152839-google",
      "attributes": {
        "searchEngine": "google",
        "top3": 15, "top10": 12, "top30": 10,
        "avg": 89.18, "count": 314, "date": "2026-09-21"
      }
    }
  ],
  "meta": { "activeProjectsCount": 14, "holdProjectsCount": 20 }
}

Шаг 2. Получить настройки съёма проекта

Позиции снимаются отдельно для каждой связки «поисковик + регион + устройство». Такая связка называется настройкой съёма, у неё свой ID.

curl --globoff 'https://apis.pr-cy.ru/api/v2.1.0/search-options?filter[status]=active&filter[projectId]=152839&include=region' \
  --header 'Content-Type: application/vnd.api+json' \
  --header 'Api-Key: ВАШ_КЛЮЧ'
Поле в attributes Что означает
searchEngine google или yandex
device desktop или mobile
language Язык выдачи
top Глубина съёма, например 30
status active — съём идёт

Регион приходит отдельной сущностью в included, связь — через relationships.region.

{
  "data": [
    {
      "type": "searchOptions",
      "id": "124889",
      "attributes": {
        "searchEngine": "google",
        "language": "en",
        "device": "mobile",
        "status": "active",
        "top": 30
      },
      "relationships": { "region": { "data": { "type": "regions", "id": "45" } } }
    }
  ],
  "included": [
    { "type": "regions", "id": "45", "attributes": { "name": "США" } }
  ]
}

data[].id — это ID настройки съёма. Именно он нужен в следующем шаге.


Шаг 3. Получить позиции и ключевые слова

curl --globoff 'https://apis.pr-cy.ru/api/v3.1.0/keywords/extendedHistory/124889?filter[dateFrom]=2026-09-15&filter[dateTo]=2026-09-21&page=1' \
  --header 'accept: application/vnd.api+json' \
  --header 'Api-Key: ВАШ_КЛЮЧ'
Параметр Описание
124889 в адресе ID настройки съёма из шага 2
filter[dateFrom], filter[dateTo] Период выгрузки, ГГГГ-ММ-ДД
page Номер страницы, общее число страниц приходит в lastPage

Что приходит в ответе

Поле Что означает
totalItems, currentPage, lastPage Постраничная навигация
activeKeywordsCount, holdKeywordsCount Сколько запросов снимается и сколько на паузе
stats Сводка: top3, top10, top30, top50, top100, top100plus, средняя позиция avg и её изменение avgDiff, число улучшившихся improved и просевших worsened
keywords[] Сами запросы

Поля запроса: keyword — текст, position — текущая позиция, wordstat — частотность, targetUrl — заданная целевая страница, relevantUrl — страница, которую нашёл поиск, positions — позиции по датам, positionsDiff — изменение за период, dateUpdated — когда снимали.

Позиция -1 означает, что сайт не найден в топ-100.

{
  "currentPage": 1,
  "lastPage": 2,
  "totalItems": 157,
  "stats": { "top3": 7, "top10": 8, "top30": 5, "avg": 88.26, "improved": 12, "worsened": 12 },
  "keywords": [
    {
      "keywordId": 3047081,
      "keyword": "buy linkedin connections",
      "position": -1,
      "wordstat": 0,
      "relevantUrl": null,
      "positions": { "2026-09-21": -1, "2026-09-20": -1 },
      "dateUpdated": "2026-09-21 03:33:48"
    }
  ]
}

Итого

1. GET /api/v2.1.0/projects?filter[statuses]=active&include=keywordsSummariesStats
   → id проекта + сводка по позициям
2. GET /api/v2.1.0/search-options?filter[projectId]=<id проекта>&filter[status]=active&include=region
   → id настройки съёма (поисковик + регион + устройство)
3. GET /api/v3.1.0/keywords/extendedHistory/<id настройки>?filter[dateFrom]=&filter[dateTo]=&page=1
   → позиции и ключевые слова

Смежные инструкции

Не нашли нужной информации? Напишите нам в тех.поддержку

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