API проектов
API для управления проектами в системе Revo. Проекты являются основными сущностями, содержащими ключевые слова и настройки продвижения.
Структура проекта
Поле | Тип | Описание |
---|---|---|
id | integer | Уникальный идентификатор проекта |
name | string | Название проекта |
domain | string | Домен сайта (без https:// и путей) |
region | integer | Идентификатор основного региона |
regions | json | Дополнительные регионы (JSON-массив) |
folder_label | string | Метка папки для группировки проектов |
limit_clicks | integer | Лимит кликов в сутки |
status | boolean | Статус активности проекта |
auto_calculation | boolean | Статус автоматического расчета бюджета |
search_hint | string | Подсказка для поиска сайта |
relevant_page | string | Релевантная страница |
upper_threshold | integer | Верхний порог позиций |
lower_threshold | integer | Нижний порог позиций |
user_id | integer | ID владельца проекта |
created_at | datetime | Дата создания |
updated_at | datetime | Дата обновления |
Получение списка проектов
GET /api/v1/projects?limit=50&offset=0
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
limit | integer | Нет | Количество проектов в ответе (по умолчанию 50) |
offset | integer | Нет | Смещение для пагинации (по умолчанию 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
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
name | string | Да | Название проекта |
domain | string | Да | Домен сайта (без https:// и путей) |
region | integer | Да | Идентификатор основного региона |
regions | json | Нет | Дополнительные регионы (JSON-массив) |
folder_label | string | Нет | Метка папки для группировки проектов |
limit_clicks | integer | Нет | Лимит кликов в сутки (по умолчанию 0) |
status | boolean | Нет | Статус активности проекта (по умолчанию true) |
auto_calculation | boolean | Нет | Статус автоматического расчета (по умолчанию true) |
search_hint | string | Нет | Подсказка для поиска сайта |
relevant_page | string | Нет | Релевантная страница |
upper_threshold | integer | Нет | Верхний порог позиций |
lower_threshold | integer | Нет | Нижний порог позиций |
node | string | Нет | Идентификатор узла |
Пример запроса
{
"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}
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | integer | Да | ID проекта (в URL) |
Пример ответа
Аналогичен ответу на создание проекта.
Обновление проекта
PUT /api/v1/project/{id}
Параметры запроса
Все параметры аналогичны созданию проекта, но ни один из них не является обязательным.
Пример запроса
{
"name": "Обновленное название проекта",
"limit_clicks": 200
}
Пример ответа
Аналогичен ответу на создание проекта, с обновленными полями.
Удаление проекта
DELETE /api/v1/project/{id}
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | integer | Да | ID проекта (в URL) |
Пример ответа
{
"error": "",
"result": {
"message": "Project deleted successfully"
}
}
Включение статуса проекта
POST /api/v1/project/{id}/enable
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | integer | Да | ID проекта (в URL) |
Пример ответа
{
"error": "",
"result": {
"message": "Статус успешно включен",
"project": {
"id": 1,
"status": true,
...
}
}
}
Выключение статуса проекта
POST /api/v1/project/{id}/disable
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | integer | Да | ID проекта (в URL) |
Пример ответа
{
"error": "",
"result": {
"message": "Статус успешно выключен",
"project": {
"id": 1,
"status": false,
...
}
}
}
Включение автоматического расчета
POST /api/v1/project/{id}/enable-auto
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | integer | Да | ID проекта (в URL) |
Пример ответа
{
"error": "",
"result": {
"message": "Автоматический расчет включен",
"project": {
"id": 1,
"auto_calculation": true,
...
}
}
}
Выключение автоматического расчета
POST /api/v1/project/{id}/disable-auto
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | integer | Да | ID проекта (в URL) |
Пример ответа
{
"error": "",
"result": {
"message": "Автоматический расчет выключен",
"project": {
"id": 1,
"auto_calculation": false,
...
}
}
}
Запуск проклика для всех ключей проекта
POST /api/v1/project/{id}/run
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | integer | Да | ID проекта (в URL) |
Пример ответа
{
"error": "",
"result": {
"message": "Задачи отправлены в очередь",
"tasks_count": 10
}
}
При выполнении этого запроса с баланса будет списано количество кликов, равное сумме кликов всех активных ключей проекта.
Запуск однократного проклика для всех ключей
POST /api/v1/project/{id}/run-all
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | integer | Да | ID проекта (в URL) |
Пример ответа
{
"error": "",
"result": {
"message": "Задачи отправлены в очередь",
"tasks_count": 5
}
}
При выполнении этого запроса с баланса будет списано количество кликов, равное количеству активных ключей проекта (по одному клику на каждый ключ).
Дополнительная информация
Поле auto_calculation
Указывает, должна ли система автоматически распределять клики между ключевыми словами:
true
- система автоматически распределяет заданное количество кликов между ключевыми словамиfalse
- вы сами устанавливаете количество кликов для каждого ключевого слова
Поле search_hint
Подсказка, которая помогает системе найти ваш сайт в поисковой выдаче, даже если он находится вне топ-30. Если поле пустое, используется домен сайта.
Поле upper_threshold
и lower_threshold
Определяют пороговые значения позиций для принятия решения о клике:
- Если позиция сайта выше
upper_threshold
, клик не производится - Если позиция сайта ниже
lower_threshold
, клик производится - Если позиция находится между значениями, используется дополнительная логика