API / Справочник методов / Бэкапы и расписание
Бэкапы и расписание
Бэкапы и задачи по расписанию.
Адрес:
https://sourhost.net/api/v1·Авторизация: Authorization: Bearer sh_live_…GET
/projects/:id/services/:serviceId/backups— Список бэкаповPOST/projects/:id/services/:serviceId/backups— Создать бэкапPOST/projects/:id/services/:serviceId/backups/:backupId/restore— Восстановить бэкапGET/projects/:id/services/:serviceId/backups/:backupId/download— Ссылка на скачиваниеPOST/projects/:id/services/:serviceId/backups/:backupId/lock— Закрепить / открепитьPUT/projects/:id/services/:serviceId/backups/:backupId/rename— Переименовать бэкапDELETE/projects/:id/services/:serviceId/backups/:backupId— Удалить бэкапGET/projects/:id/services/:serviceId/cron— Задачи по расписаниюPOST/projects/:id/services/:serviceId/cron— Создать задачуPATCH/projects/:id/services/:serviceId/cron/:cronId— Изменить задачуDELETE/projects/:id/services/:serviceId/cron/:cronId— Удалить задачуGET
/projects/:id/services/:serviceId/backupsСписок бэкапов
Право:
servers:readПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
Пример запроса
curl "https://sourhost.net/api/v1/projects/12/services/34/backups" \
-H "Authorization: Bearer $SOURHOST_TOKEN"Ответ
HTTP
HTTP/2 200 OK
{
"items": [
{
"id": "2f6c1a9e-4b7d-4c1e-9a3b-6d5e8f7a1b2c",
"name": "Перед турниром",
"isSuccessful": true,
"isLocked": true,
"bytes": 734003200,
"createdAt": "2026-11-10T02:00:00Z",
"completedAt": "2026-11-10T02:03:12Z"
}
]
}POST
/projects/:id/services/:serviceId/backupsСоздать бэкап
Создаётся в фоне. При лимите заменяется самый старый незакреплённый.
Право:
servers:backupsПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
Пример запроса
curl -X POST "https://sourhost.net/api/v1/projects/12/services/34/backups" \
-H "Authorization: Bearer $SOURHOST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Перед обновлением","isLocked":false}'Ответ
204 Пустой ответ
POST
/projects/:id/services/:serviceId/backups/:backupId/restoreВосстановить бэкап
Текущие файлы сервера заменяются файлами бэкапа.
Право:
servers:backupsПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
backupIdобязательный | path · string | ID бэкапа (из списка бэкапов) |
Пример запроса
curl -X POST "https://sourhost.net/api/v1/projects/12/services/34/backups/2f6c1a9e-4b7d-4c1e-9a3b-6d5e8f7a1b2c/restore" \
-H "Authorization: Bearer $SOURHOST_TOKEN"Ответ
204 Пустой ответ
GET
/projects/:id/services/:serviceId/backups/:backupId/downloadСсылка на скачивание
Право:
servers:backupsПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
backupIdобязательный | path · string | ID бэкапа (из списка бэкапов) |
Пример запроса
curl "https://sourhost.net/api/v1/projects/12/services/34/backups/2f6c1a9e-4b7d-4c1e-9a3b-6d5e8f7a1b2c/download" \
-H "Authorization: Bearer $SOURHOST_TOKEN"Ответ
HTTP
HTTP/2 200 OK
{
"url": "https://de-n3.sourhost.net:8080/download/backup?token=…"
}POST
/projects/:id/services/:serviceId/backups/:backupId/lockЗакрепить / открепить
Право:
servers:backupsПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
backupIdобязательный | path · string | ID бэкапа (из списка бэкапов) |
Пример запроса
curl -X POST "https://sourhost.net/api/v1/projects/12/services/34/backups/2f6c1a9e-4b7d-4c1e-9a3b-6d5e8f7a1b2c/lock" \
-H "Authorization: Bearer $SOURHOST_TOKEN"Ответ
204 Пустой ответ
PUT
/projects/:id/services/:serviceId/backups/:backupId/renameПереименовать бэкап
Право:
servers:backupsПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
backupIdобязательный | path · string | ID бэкапа (из списка бэкапов) |
Пример запроса
curl -X PUT "https://sourhost.net/api/v1/projects/12/services/34/backups/2f6c1a9e-4b7d-4c1e-9a3b-6d5e8f7a1b2c/rename" \
-H "Authorization: Bearer $SOURHOST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Финал"}'Ответ
204 Пустой ответ
DELETE
/projects/:id/services/:serviceId/backups/:backupIdУдалить бэкап
Право:
servers:backupsПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
backupIdобязательный | path · string | ID бэкапа (из списка бэкапов) |
Пример запроса
curl -X DELETE "https://sourhost.net/api/v1/projects/12/services/34/backups/2f6c1a9e-4b7d-4c1e-9a3b-6d5e8f7a1b2c" \
-H "Authorization: Bearer $SOURHOST_TOKEN"Ответ
204 Пустой ответ
GET
/projects/:id/services/:serviceId/cronЗадачи по расписанию
Право:
servers:readПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
Пример запроса
curl "https://sourhost.net/api/v1/projects/12/services/34/cron" \
-H "Authorization: Bearer $SOURHOST_TOKEN"Ответ
HTTP
HTTP/2 200 OK
{
"items": [
{
"id": "5",
"name": "Ночной рестарт",
"action": "restart",
"command": "",
"isActive": true,
"onlyWhenOnline": false,
"minute": "0",
"hour": "5",
"dayOfMonth": "*",
"month": "*",
"dayOfWeek": "*",
"lastRunAt": "2026-11-11T05:00:00+02:00",
"nextRunAt": "2026-11-12T05:00:00+02:00"
}
]
}POST
/projects/:id/services/:serviceId/cronСоздать задачу
Право:
servers:cronПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
nameобязательный | body · string | Название задачи |
actionобязательный | body · string | start, stop, restart или command |
command | body · string | Команда в консоль, если action = command |
minute / hour / dayOfMonth / month / dayOfWeekобязательный | body · string | Поля cron в часовом поясе аккаунта; * — любое |
isActive / onlyWhenOnline | body · boolean | Включена ли задача; только при запущенном сервере |
Пример запроса
curl -X POST "https://sourhost.net/api/v1/projects/12/services/34/cron" \
-H "Authorization: Bearer $SOURHOST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Ночной рестарт","action":"restart","command":"","isActive":true,"onlyWhenOnline":false,"minute":"0","hour":"5","dayOfMonth":"*","month":"*","dayOfWeek":"*"}'Ответ
204 Пустой ответ
PATCH
/projects/:id/services/:serviceId/cron/:cronIdИзменить задачу
Право:
servers:cronПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
cronIdобязательный | path · string | ID задачи (из списка задач) |
nameобязательный | body · string | Название задачи |
actionобязательный | body · string | start, stop, restart или command |
command | body · string | Команда в консоль, если action = command |
minute / hour / dayOfMonth / month / dayOfWeekобязательный | body · string | Поля cron в часовом поясе аккаунта; * — любое |
isActive / onlyWhenOnline | body · boolean | Включена ли задача; только при запущенном сервере |
Пример запроса
curl -X PATCH "https://sourhost.net/api/v1/projects/12/services/34/cron/5" \
-H "Authorization: Bearer $SOURHOST_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Ночной рестарт","action":"restart","command":"","isActive":true,"onlyWhenOnline":false,"minute":"0","hour":"6","dayOfMonth":"*","month":"*","dayOfWeek":"*"}'Ответ
204 Пустой ответ
DELETE
/projects/:id/services/:serviceId/cron/:cronIdУдалить задачу
Право:
servers:cronПараметры
idобязательный | path · string | Номер проекта (из GET /projects) или тикета |
serviceIdобязательный | path · string | Номер услуги (из GET /projects/:id/services) |
cronIdобязательный | path · string | ID задачи (из списка задач) |
Пример запроса
curl -X DELETE "https://sourhost.net/api/v1/projects/12/services/34/cron/5" \
-H "Authorization: Bearer $SOURHOST_TOKEN"Ответ
204 Пустой ответ
Общие ошибки
Любой метод может ответить так. Подробнее об ошибках
| 400 | bad_request | Неверное тело или параметры |
| 401 | token_invalid | Токен неверный, отозван или просрочен |
| 403 | token_scope_missing | У токена нет нужного права |
| 403 | token_project_forbidden | Проект или услуга вне ограничений токена |
| 404 | not_found | Нет такого проекта, услуги или объекта |
| 429 | token_rate_limited | Слишком много запросов, см. Retry-After |
| 503 | upstream_unavailable | Панель или нода не ответили — повторите позже |