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
→ позиции и ключевые слова
Смежные инструкции
Не нашли нужной информации? Напишите нам в тех.поддержку