Skip to main content

API проектов

API для управления проектами в системе Revo. Проекты являются основными сущностями, содержащими ключевые слова и настройки продвижения.

Структура проекта

ПолеТипОписание
idintegerУникальный идентификатор проекта
namestringНазвание проекта
domainstringДомен сайта (без https:// и путей)
regionintegerИдентификатор основного региона
regionsjsonДополнительные регионы (JSON-массив)
folder_labelstringМетка папки для группировки проектов
limit_clicksintegerЛимит кликов в сутки
statusbooleanСтатус активности проекта
auto_calculationbooleanСтатус автоматического расчета бюджета
search_hintstringПодсказка для поиска сайта
relevant_pagestringРелевантная страница
upper_thresholdintegerВерхний порог позиций
lower_thresholdintegerНижний порог позиций
user_idintegerID владельца проекта
created_atdatetimeДата создания
updated_atdatetimeДата обновления

Получение списка проектов

GET /api/v1/projects?limit=50&offset=0

Параметры запроса

ПараметрТипОбязательныйОписание
limitintegerНетКоличество проектов в ответе (по умолчанию 50)
offsetintegerНетСмещение для пагинации (по умолчанию 0)

Пример ответа

{
"error": "",
"result": [
{
"id": 1,
"name": "Мой проект",
"domain": "example.com",
"region": 213,
"regions": "[213, 2, 54]",
"folder_label": "Основные проекты",
"limit_clicks": 100,
"status": true,
"auto_calculation": true,
"search_hint": "подсказка",
"relevant_page": "https://example.com/main",
"upper_threshold": 10,
"lower_threshold": 5,
"user_id": 1,
"created_at": "2025-01-01T00:00:00.000000Z",
"updated_at": "2025-01-02T00:00:00.000000Z"
}
],
"total": 1
}

Создание проекта

POST /api/v1/project

Параметры запроса

ПараметрТипОбязательныйОписание
namestringДаНазвание проекта
domainstringДаДомен сайта (без https:// и путей)
regionintegerДаИдентификатор основного региона
regionsjsonНетДополнительные регионы (JSON-массив)
folder_labelstringНетМетка папки для группировки проектов
limit_clicksintegerНетЛимит кликов в сутки (по умолчанию 0)
statusbooleanНетСтатус активности проекта (по умолчанию true)
auto_calculationbooleanНетСтатус автоматического расчета (по умолчанию true)
search_hintstringНетПодсказка для поиска сайта
relevant_pagestringНетРелевантная страница
upper_thresholdintegerНетВерхний порог позиций
lower_thresholdintegerНетНижний порог позиций
nodestringНетИдентификатор узла

Пример запроса

{
"name": "Новый проект",
"domain": "example.com",
"region": 213,
"limit_clicks": 100,
"status": true,
"auto_calculation": true,
"search_hint": "подсказка",
"folder_label": "Мои проекты"
}

Пример ответа

{
"error": "",
"result": {
"id": 1,
"name": "Новый проект",
"domain": "example.com",
"region": 213,
"limit_clicks": 100,
"status": true,
"auto_calculation": true,
"search_hint": "подсказка",
"folder_label": "Мои проекты",
"user_id": 1,
"created_at": "2025-01-01T00:00:00.000000Z",
"updated_at": "2025-01-01T00:00:00.000000Z"
}
}

Получение информации о проекте

GET /api/v1/project/{id}

Параметры запроса

ПараметрТипОбязательныйОписание
idintegerДаID проекта (в URL)

Пример ответа

Аналогичен ответу на создание проекта.

Обновление проекта

PUT /api/v1/project/{id}

Параметры запроса

Все параметры аналогичны созданию проекта, но ни один из них не является обязательным.

Пример запроса

{
"name": "Обновленное название проекта",
"limit_clicks": 200
}

Пример ответа

Аналогичен ответу на создание проекта, с обновленными полями.

Удаление проекта

DELETE /api/v1/project/{id}

Параметры запроса

ПараметрТипОбязательныйОписание
idintegerДаID проекта (в URL)

Пример ответа

{
"error": "",
"result": {
"message": "Project deleted successfully"
}
}

Включение статуса проекта

POST /api/v1/project/{id}/enable

Параметры запроса

ПараметрТипОбязательныйОписание
idintegerДаID проекта (в URL)

Пример ответа

{
"error": "",
"result": {
"message": "Статус успешно включен",
"project": {
"id": 1,
"status": true,
...
}
}
}

Выключение статуса проекта

POST /api/v1/project/{id}/disable

Параметры запроса

ПараметрТипОбязательныйОписание
idintegerДаID проекта (в URL)

Пример ответа

{
"error": "",
"result": {
"message": "Статус успешно выключен",
"project": {
"id": 1,
"status": false,
...
}
}
}

Включение автоматического расчета

POST /api/v1/project/{id}/enable-auto

Параметры запроса

ПараметрТипОбязательныйОписание
idintegerДаID проекта (в URL)

Пример ответа

{
"error": "",
"result": {
"message": "Автоматический расчет включен",
"project": {
"id": 1,
"auto_calculation": true,
...
}
}
}

Выключение автоматического расчета

POST /api/v1/project/{id}/disable-auto

Параметры запроса

ПараметрТипОбязательныйОписание
idintegerДаID проекта (в URL)

Пример ответа

{
"error": "",
"result": {
"message": "Автоматический расчет выключен",
"project": {
"id": 1,
"auto_calculation": false,
...
}
}
}

Запуск проклика для всех ключей проекта

POST /api/v1/project/{id}/run

Параметры запроса

ПараметрТипОбязательныйОписание
idintegerДаID проекта (в URL)

Пример ответа

{
"error": "",
"result": {
"message": "Задачи отправлены в очередь",
"tasks_count": 10
}
}
Важно

При выполнении этого запроса с баланса будет списано количество кликов, равное сумме кликов всех активных ключей проекта.

Запуск однократного проклика для всех ключей

POST /api/v1/project/{id}/run-all

Параметры запроса

ПараметрТипОбязательныйОписание
idintegerДаID проекта (в URL)

Пример ответа

{
"error": "",
"result": {
"message": "Задачи отправлены в очередь",
"tasks_count": 5
}
}
Важно

При выполнении этого запроса с баланса будет списано количество кликов, равное количеству активных ключей проекта (по одному клику на каждый ключ).

Дополнительная информация

Поле auto_calculation

Указывает, должна ли система автоматически распределять клики между ключевыми словами:

  • true - система автоматически распределяет заданное количество кликов между ключевыми словами
  • false - вы сами устанавливаете количество кликов для каждого ключевого слова

Поле search_hint

Подсказка, которая помогает системе найти ваш сайт в поисковой выдаче, даже если он находится вне топ-30. Если поле пустое, используется домен сайта.

Поле upper_threshold и lower_threshold

Определяют пороговые значения позиций для принятия решения о клике:

  • Если позиция сайта выше upper_threshold, клик не производится
  • Если позиция сайта ниже lower_threshold, клик производится
  • Если позиция находится между значениями, используется дополнительная логика