[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-infra\u002Flifecycle\u002Fstop":3,"docs-tabs-infra\u002Flifecycle\u002Fstop":6},{"content":4,"lastmod":5},"\n## Остановить сервер\n\n`POST \u002Fv1\u002Finfra\u002Fservers\u002F:id\u002Fstop`\n\nШтатная остановка работающего сервера. Виртуальная машина останавливается у провайдера, статус меняется на `sleeping`, открытая биллинг-транзакция по рабочему периоду закрывается, открывается транзакция по сонному периоду (тариф sleep существенно ниже). Работает для любого режима — и BLACKHOLE, и OPEN. Сервер можно снова запустить через [`POST \u002Fstart`](.\u002Fstart.md) или разбудить автоматически обращением к субдомену.\n\n## Параметры\n\n| Параметр | В | Тип | Обяз. | Описание |\n|----------|---|-----|:-----:|----------|\n| `id` | path | string (UUID) | да | ID сервера |\n\nТело запроса пустое.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST -H \"X-Api-Key: YOUR_API_KEY\" \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Finfra\u002Fservers\u002FSERVER_ID\u002Fstop\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Finfra\u002Fservers\u002FSERVER_ID\u002Fstop\n```\n\n### JavaScript — личный ключ\n\n```javascript\nawait fetch(\n  `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Finfra\u002Fservers\u002F${serverId}\u002Fstop`,\n  { method: 'POST', headers: { 'X-Api-Key': 'YOUR_API_KEY' } }\n)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nawait fetch(\n  `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Finfra\u002Fservers\u002F${serverId}\u002Fstop`,\n  {\n    method: 'POST',\n    headers: {\n      'X-Api-Key': 'YOUR_APP_KEY',\n      'Authorization': 'Bearer USER_SESSION_TOKEN',\n    },\n  }\n)\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|----------|\n| `success` | boolean | `true` при успешной остановке |\n\n## Пример ответа\n\n```json\n{ \"success\": true }\n```\n\n## Пример ответа при ошибке\n\n422 — сервер существует, но не в статусе `running` (например, `sleeping`). В ответе — текущее состояние и доступные действия:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SERVER_WRONG_STATE\",\n    \"message\": \"Server is SLEEPING; \u002Fstop requires RUNNING.\",\n    \"userMessage\": \"Server is currently SLEEPING. Stop only applies to a RUNNING server.\",\n    \"currentState\": { \"status\": \"SLEEPING\", \"blackholeStatus\": \"DISCONNECTED\", \"hasExternalId\": true },\n    \"availableActions\": [\"wake\", \"start\", \"repair\", \"delete\"]\n  }\n}\n```\n\n404 — сервера с таким `id` нет (удалён или принадлежит другому API-ключу):\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SERVER_NOT_FOUND\",\n    \"message\": \"Server not found\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `INVALID_API_KEY` | Неверный или просроченный API-ключ |\n| 404 | `SERVER_NOT_FOUND` | Сервера с таким `id` нет — удалён или принадлежит другому API-ключу |\n| 422 | `SERVER_WRONG_STATE` | Сервер существует, но не в статусе `running`. В `error.currentState` — текущее состояние, в `error.availableActions` — что можно сделать сейчас |\n| 422 | `VM_MISSING` | У серверной записи нет облачной ВМ (создание не завершилось или ВМ удалена вручную) — удалите сервер и создайте заново |\n| 429 | `RATE_LIMITED` | Превышен общий лимит запросов платформы |\n| 502 | `PROVIDER_ERROR` | Облачный провайдер вернул ошибку при остановке |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- **Почему `sleeping`, а не `stopped`.** Это терминология Infrastructure API: остановленный сервер называется «спящим», потому что биллинг для него идёт по отдельному тарифу `sleepPriceMonthly` (см. [тарифы провайдера](\u002Fdocs\u002Finfra\u002Fproviders\u002Fplans)) — ниже, чем рабочий. Значение `stopped` в v1-ответах не встречается.\n- **`\u002Fstop` сбрасывает `preventWake`** (автоматический флаг, блокирующий пробуждение) — после остановки сервер снова можно пробудить автоматически обращением к субдомену или через [`\u002Fwake`](.\u002Fwake.md).\n- **Для BLACKHOLE есть альтернатива — [`\u002Fsleep-now`](.\u002Fsleep-now.md).** Функционально результат идентичный. `\u002Fsleep-now` используется из UI-кнопки «Усыпить» и явно помечен как BH-специфический. `\u002Fstop` — универсальный для любого режима.\n\n## Смотрите также\n\n- [Запустить сервер](.\u002Fstart.md) — `POST \u002Fv1\u002Finfra\u002Fservers\u002F:id\u002Fstart`.\n- [Немедленно усыпить](.\u002Fsleep-now.md) — синоним для BLACKHOLE.\n- [Настроить авто-сон](.\u002Fsleep.md) — чтобы сервер засыпал сам через N минут простоя.\n- [Удалить сервер](\u002Fdocs\u002Finfra\u002Fservers\u002Fdelete) — полное удаление виртуальной машины.\n","2026-07-10",{"start.md":7},"\n## Запустить сервер\n\n`POST \u002Fv1\u002Finfra\u002Fservers\u002F:id\u002Fstart`\n\nПоднимает сервер из состояний `sleeping`, `error` или `provisioning`. Для `sleeping` виртуальная машина снова запускается у провайдера и возвращается к статусу `running` по мере готовности — вызов возвращает ответ сразу, не дожидаясь фактической готовности. Её нужно отслеживать опросом [`GET \u002Fv1\u002Finfra\u002Fservers\u002F:id`](\u002Fdocs\u002Finfra\u002Fservers\u002Fget). Для `error` с подключённым туннелем (`blackholeStatus: \"CONNECTED\"`) сервер сразу переводится в `running` без обращения к провайдеру. Для `provisioning` делается повторная попытка старта без сброса таймера ожидания. Для `running` сервера вызов возвращает 404.\n\n## Параметры\n\n| Параметр | В | Тип | Обяз. | Описание |\n|----------|---|-----|:-----:|----------|\n| `id` | path | string (UUID) | да | ID сервера |\n\nТело запроса пустое.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST -H \"X-Api-Key: YOUR_API_KEY\" \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Finfra\u002Fservers\u002FSERVER_ID\u002Fstart\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Finfra\u002Fservers\u002FSERVER_ID\u002Fstart\n```\n\n### JavaScript — личный ключ\n\n```javascript\nawait fetch(\n  `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Finfra\u002Fservers\u002F${serverId}\u002Fstart`,\n  { method: 'POST', headers: { 'X-Api-Key': 'YOUR_API_KEY' } }\n)\n\u002F\u002F Ждать готовности — опрашивать GET \u002Fv1\u002Finfra\u002Fservers\u002F:id\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nawait fetch(\n  `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Finfra\u002Fservers\u002F${serverId}\u002Fstart`,\n  {\n    method: 'POST',\n    headers: {\n      'X-Api-Key': 'YOUR_APP_KEY',\n      'Authorization': 'Bearer USER_SESSION_TOKEN',\n    },\n  }\n)\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|----------|\n| `success` | boolean | `true`. Виртуальная машина запущена у провайдера или команда на запуск отправлена в фоновом режиме |\n\n## Пример ответа\n\n```json\n{ \"success\": true }\n```\n\n## Пример ответа при ошибке\n\n404 — сервер в статусе `running`\u002F`deleted` либо чужой:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"Sleeping, error, or provisioning server not found\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `INVALID_API_KEY` | Неверный или просроченный API-ключ |\n| 402 | `ACCOUNT_FROZEN` | Баланс Вайбкод заморожен. Пополните и повторите |\n| 404 | `NOT_FOUND` | Сервер в статусе `running`\u002F`deleted` либо принадлежит другому API-ключу |\n| 409 | `CONFLICT` | Статус сервера изменился во время операции — повторите запрос |\n| 422 | `VM_MISSING` | У записи нет `externalId` — виртуальная машина не создана или удалена извне. Удалите сервер и создайте новый |\n| 429 | `RATE_LIMITED` | Превышен общий лимит запросов платформы |\n| 502 | `PROVIDER_ERROR` | Облачный провайдер вернул ошибку при запуске виртуальной машины |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- **Блокирующий вариант.** Если клиенту нужна полная готовность сервера перед следующим шагом — используйте [`POST \u002Fwake?wait=true`](.\u002Fwake.md) вместо `\u002Fstart`. Он ждёт `status: \"running\"` + `blackholeStatus: \"CONNECTED\"` до ~6.5 минут.\n- **Ручной `\u002Fstart` обходит `preventWake`.** В отличие от автоматического пробуждения при обращении к субдомену, явный `POST \u002Fstart` снимает флаг `preventWake` и запускает сервер даже если он был заблокирован. Биллинговые блокировки (`ACCOUNT_FROZEN`) обходятся отдельным пополнением, не через `\u002Fstart`.\n- **Для `running` возвращает 404, не 409.** Сознательный выбор: сервер уже в нужном состоянии, делать нечего. Для перезагрузки — [`POST \u002Freboot`](.\u002Freboot.md).\n\n## Смотрите также\n\n- [Остановить сервер](.\u002Fstop.md) — `POST \u002Fv1\u002Finfra\u002Fservers\u002F:id\u002Fstop`.\n- [Разбудить сервер (с `?wait=true`)](.\u002Fwake.md) — блокирующий вариант с ожиданием готовности.\n- [Немедленно усыпить](.\u002Fsleep-now.md) — обратная операция.\n- [Обновить статус](.\u002Frefresh.md) — принудительно опросить провайдера после старта.\n- [Получить сервер](\u002Fdocs\u002Finfra\u002Fservers\u002Fget) — опрос готовности.\n"]