Для AI-агентов: markdown этой страницы — /docs-content/infra/lifecycle/sleep.md индекс документации — /llms.txt
Настроить авто-сон
PATCH /v1/infra/servers/:id/sleep
Настраивает таймер автоматического засыпания BLACKHOLE-сервера. При отсутствии входящих HTTP-запросов к приложению в течение sleepAfterMinutes минут сервер автоматически останавливается. Поднять его снова можно вызовом /wake, а обращение к HTTPS-субдомену будит сервер не в каждом случае — условия там же. Передача null отключает авто-сон.
null отключает только наш авто-сон по бездействию. Если сервер стоит на вытесняемом (preemptible) тарифе (bc-agent, bc-micro — см. Тарифы), облако всё равно принудительно перезапускает такую машину примерно раз в сутки, с коротким окном недоступности. Платформа автоматически будит её обратно. Для по-настоящему непрерывной 24/7-нагрузки выбирайте невытесняемый тариф (bc-small и выше) — на нём null действительно означает работу до ручной остановки.
Параметры
| Параметр | В | Тип | Обяз. | Описание |
|---|---|---|---|---|
id |
path | string (UUID) | да | ID сервера в режиме BLACKHOLE |
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
sleepAfterMinutes |
number | null | да | Таймаут простоя в минутах. Допустимые значения: 15, 30, 60, 240, или null (для отключения авто-сна). Другие значения отклоняются с VALIDATION_ERROR |
Примеры
curl — личный ключ
# Включить авто-сон через 60 минут простоя
curl -X PATCH https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/sleep \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"sleepAfterMinutes": 60}'
# Отключить авто-сон
curl -X PATCH https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/sleep \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"sleepAfterMinutes": null}'
curl — OAuth-приложение
curl -X PATCH https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/sleep \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"sleepAfterMinutes": 60}'
JavaScript — личный ключ
const res = await fetch(
`https://vibecode.bitrix24.tech/v1/infra/servers/${serverId}/sleep`,
{
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({ sleepAfterMinutes: 60 }),
}
)
const { data } = await res.json()
console.log(`Авто-сон через ${data.sleepAfterMinutes} мин`)
JavaScript — OAuth-приложение
await fetch(
`https://vibecode.bitrix24.tech/v1/infra/servers/${serverId}/sleep`,
{
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({ sleepAfterMinutes: null }),
}
)
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data.sleepAfterMinutes |
number | null | Актуальное значение таймаута (эхо переданного) |
Пример ответа
{
"success": true,
"data": {
"sleepAfterMinutes": 60
}
}
Пример ответа при ошибке
400 — некорректное значение sleepAfterMinutes:
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "sleepAfterMinutes must be 15, 30, 60, 240, or null"
}
}
400 — сервер не в BLACKHOLE:
{
"success": false,
"error": {
"code": "BLACKHOLE_ONLY",
"message": "Sleep settings are only available for BLACKHOLE servers"
}
}
400 — переход в «Всегда онлайн» при включённых окнах пробуждения:
{
"success": false,
"error": {
"code": "ALWAYS_ON_CONFLICT",
"message": "The server has enabled wake-schedule windows, which conflict with always-on (24/7) mode. Delete or disable the wake windows first, or keep a sleep timeout."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | VALIDATION_ERROR |
sleepAfterMinutes не в списке [15, 30, 60, 240, null] |
| 400 | GALAXY_APP_USE_GALAXY_ROUTE |
Сервер — galaxy-приложение. Оно засыпает вместе с хостом, таймер простоя через API Вайбкод ему не задаётся. Что применимо к приложению — Galaxy-приложение |
| 400 | BLACKHOLE_ONLY |
Сервер в режиме OPEN — авто-сон недоступен |
| 400 | ALWAYS_ON_CONFLICT |
null на невытесняемом тарифе при включённых окнах пробуждения — сначала удалите или отключите окна |
| 400 | AGENT_IDLE_SLEEP_FORBIDDEN |
Сервер создан под агента или бота (createdVia agent/bot) — числовой sleepAfterMinutes запрещён, принимается только null. Экономия по расписанию — через окна пробуждения |
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | INVALID_API_KEY |
Неверный или просроченный API-ключ |
| 403 | INFRA_FORBIDDEN_FOR_COWORK_KEY |
Вызов сделан ключом Cowork/Code — такой ключ работает только с данными, изменяющие операции ему закрыты. Что делать — Проектный ключ для деплоя |
| 403 | SERVER_ROLE_FORBIDDEN |
Вы состоите в команде разработки этого сервера с ролью «Разработчик», а операция открыта роли «Администратор». В error.hint придут ваша роль, требуемый порог и перечень открытых вам вызовов. Разбор ролей — Список серверов |
| 404 | NOT_FOUND |
Сервер не существует, удалён или привязан к другому API-ключу, и вы не состоите в его команде разработки |
| 429 | RATE_LIMITED |
Превышен общий лимит запросов платформы |
Полный список общих ошибок API — Ошибки.
Известные особенности
- Что считается активностью и сбрасывает таймер. Таймер сбрасывают входящие HTTP-запросы к приложению через туннель. Реальная активность проверяется раз в несколько минут через Gateway-метрики, момент последнего обращения виден полем
lastRequestAtвGET /v1/infra/servers/:id/metrics. Запросы, которые приложение отправляет само наружу, активностью не считаются, поэтому приложение с постоянным опросом внешнего API собственную машину в сети не удерживает и черезsleepAfterMinutesминут останавливается вместе с ней. Для такого приложения авто-сон отключают значениемnull. - Авто-пробуждение сохраняется. Сервер, заснувший по таймеру, просыпается при вызове
/deploy//wake//start, а обращение к HTTPS-субдомену будит его на условиях автоматического пробуждения. - Значение по умолчанию для новых серверов — 60 минут. Текущее значение — в поле
GET /v1/infra/servers/:id. - Серверы агентов и управляемых ботов не засыпают по простою. Речь о машинах, которые платформа создаёт сама под AI-агента или управляемого бота, — в ответе
GET /v1/infra/servers/:idу них полеcreatedViaравноagentилиbot. Машина, которую вы создали черезPOST /v1/infra/servers, под это правило не подпадает: у неёcreatedViaравноapi, таймаут простоя по умолчанию 60 минут, и собственного бота на такой машине от засыпания защищаете вы сами — значениемnull. Серверы агентов и управляемых ботов создаются сsleepAfterMinutes: nullи должны оставаться в сети круглосуточно: спящий бот перестаёт опрашивать Битрикс24 и не проснётся на новое сообщение, а выполняемая задача оборвётся. Поэтому для сервера, созданного под агента или бота, запрос с числовымsleepAfterMinutesотклоняется —400 AGENT_IDLE_SLEEP_FORBIDDEN. Принимается толькоnull(никогда не засыпать). Для экономии по расписанию используйте окна пробуждения. Для обычных приложенийnullтоже допустим, но приведёт к постоянному списанию по рабочему тарифу — по умолчанию агент/бот создаётся на вытесняемом тарифе — он дешевле, и облако перезапускает такую машину примерно раз в сутки. Для непрерывной работы включите «Всегда онлайн» при создании, это невытесняемый тариф. - Взаимное исключение с расписанием пробуждения.
sleepAfterMinutes: nullна невытесняемом тарифе означает «Всегда онлайн» — такой сервер несовместим с включёнными окнами пробуждения: запрос отклоняется сALWAYS_ON_CONFLICT. Верно и обратное — окно нельзя объявить на сервере «Всегда онлайн». Сначала удалите или отключите окна, либо оставьте числовой таймаут. - Эндпоинт не меняет статус — только обновляет конфигурацию. Чтобы усыпить сервер сразу, используйте
POST /sleep-now.