Для AI-агентов: markdown этой страницы — /docs-content/infra/servers/delete.md индекс документации — /llms.txt
Удалить сервер
DELETE /v1/infra/servers/:id
Удаляет сервер безвозвратно: виртуальная машина уничтожается у провайдера, запись в базе помечается как DELETED, открытые биллинг-транзакции финализируются. Работавший на сервере AI-агент удаляется вместе с ним. Восстановить удалённый сервер нельзя — создавайте новый через POST /v1/infra/servers. Удаление идемпотентно только на уровне виртуальной машины у провайдера (если она уже удалена у провайдера, ошибки не будет). Повторный вызов для уже помеченного сервера вернёт 404.
Параметры
| Параметр | В | Тип | Обяз. | Описание |
|---|---|---|---|---|
id |
path | string (UUID) | да | ID сервера из POST /v1/infra/servers или GET /v1/infra/servers |
Примеры
curl — личный ключ
curl -X DELETE -H "X-Api-Key: YOUR_API_KEY" \
https://vibecode.bitrix24.tech/v1/infra/servers/db008c84-91a5-4e15-b9d5-6c6aa2838448
curl — OAuth-приложение
curl -X DELETE -H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID
JavaScript — личный ключ
const res = await fetch(
`https://vibecode.bitrix24.tech/v1/infra/servers/${serverId}`,
{
method: 'DELETE',
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
}
)
const { success } = await res.json()
if (success) console.log('Сервер удалён')
JavaScript — OAuth-приложение
const res = await fetch(
`https://vibecode.bitrix24.tech/v1/infra/servers/${serverId}`,
{
method: 'DELETE',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
}
)
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | true — запись сервера удалена, начисления за него остановлены |
cloudDelete |
string | Чем закончился запрос на удаление виртуальной машины в облаке — см. ниже |
Значения cloudDelete:
confirmed— облако приняло запрос на удаление машины.already-gone— машины в облаке уже не было.failed— облако запрос не приняло. Запись сервера удалена и начисления остановлены, но машина может продолжать работать. Не считайте ресурс уничтоженным. Повтор запроса вернёт 404 — записи сервера уже нет.not-applicable— у сервера нет виртуальной машины в облаке, например у galaxy-приложения.
confirmed и already-gone для клиента равнозначны: машина удалена или удаляется. success равен true при любом значении cloudDelete.
Пример ответа
{
"success": true,
"cloudDelete": "confirmed"
}
Пример ответа при ошибке
404 — сервер уже удалён или не существует:
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Server not found"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | INVALID_API_KEY |
Ключ не опознан: такой строки на платформе нет |
| 403 | INFRA_FORBIDDEN_FOR_COWORK_KEY |
Вызов сделан ключом Cowork/Code — такой ключ работает только с данными, изменяющие операции ему закрыты. Что делать — Проектный ключ для деплоя |
| 403 | SERVER_ROLE_FORBIDDEN |
Вы состоите в команде разработки этого сервера — удаление остаётся за владельцем при любой роли. В error.hint придут ваша роль и перечень открытых вам вызовов. Разбор ролей — Список серверов |
| 403 | EXTERNAL_COLLABORATOR_KEY_SERVER_MISMATCH |
Вызов сделан ключом внешнего участника разработки, а в адресе указан не тот сервер, для которого ключ выпущен. Такой ключ действует ровно на одном сервере, и ответ не сообщает, существует ли запрошенный сервер. Для работы с другим сервером нужен ключ того внешнего членства |
| 403 | EXTERNAL_COLLABORATOR_NOT_A_MEMBER |
Ключ внешнего участника обращается к своему серверу, но доступа сейчас нет: членство снято, истёк его срок либо для аккаунта Битрикс24, которому принадлежит сервер, отключены внешние участники разработки. Код эти причины не различает и сведений о сервере не раскрывает. Членство перечитывается на каждом запросе, поэтому снятый доступ перестаёт работать сразу |
| 404 | NOT_FOUND |
Сервер не найден, уже удалён или привязан к другому API-ключу, и вы не состоите в его команде разработки |
| 409 | REISSUE_IN_PROGRESS |
Ключ приложения или его привязка к серверу заняты, например перевыпуском ключа или доставкой секретов. Этот запрос ничего не удалил; повторите чуть позже |
| 409 | AGENT_DELETE_CONFLICT |
Запись AI-агента этого сервера в этот момент менял другой запрос. Сервер при этом не удалён и продолжает тарифицироваться — повторите запрос. Подробнее — см. «Известные особенности» |
| 409 | GALAXY_HAS_APPS |
Сервер — галактика, на которой есть неудалённые приложения. Тело содержит appCount. Удалить галактику вместе с её приложениями можно в кабинете |
| 409 | GALAXY_HOST_WAKE_BLOCKED |
Galaxy-приложение: его хост запрещено будить — например, заморожен счёт. Отказ терминальный, повтор не поможет. Тело содержит error.reason — см. «Известные особенности» |
| 502 | GALAXY_HOST_UNREACHABLE |
Доступ к хосту или удаление контейнера не подтверждены. Приложение и его привязка сохранены; восстановите доступ или устраните ошибку удаления перед повтором |
| 429 | RATE_LIMITED |
Превышен общий лимит запросов платформы |
Полный список общих ошибок API — Ошибки.
Известные особенности
- Вместе с сервером удаляется работавший на нём AI-агент. Запись агента помечается удалённой, его бот снимается с портала Битрикс24, ключ агента отзывается и запросы с ним больше не проходят, карточка приложения снимается с каталога Битрикс24. Переиспользовать агента после удаления сервера нельзя: создайте новый сервер и заведите агента заново. У galaxy-приложения агент снимается после того, как слот уже разобран, поэтому на код ответа исход этого шага не влияет — ответ остаётся
200 { "success": true, "cloudDelete": "not-applicable" }. - Отказ 409
AGENT_DELETE_CONFLICTозначает, что сервер жив. Запись агента в этот момент менял другой запрос — например, параллельное удаление или восстановление того же агента, — и удаление не состоялось. Сервер не удалён, он продолжает работать и тарифицироваться. Отказ повторяемый: когда параллельная операция закончится, тот же вызов пройдёт обычным путём. - Обработка 404 при повторах — норма. Если клиент потерял соединение после первого
DELETE, повтор вернёт 404. Ловите 404 как «уже удалено». - Если виртуальная машина уже удалена у провайдера другим способом (панель провайдера, ручная очистка) —
DELETEвсё равно отработает успешно и пометит запись в базе как удалённую. - Квота освобождается сразу. После удаления можно сразу создавать новый сервер —
MAX_SERVERS_REACHEDбольше не будет считать эту запись. - Удаление работает для любого статуса. Сервер в
provisioning,running,sleepingиerror— все удаляются штатно. - Снимки исходников переживают сервер. Сохранённые версии кода остаются доступны после удаления: список —
GET /v1/infra/servers/:id/sources, скачивание —GET /v1/infra/servers/:id/sources/:versionId/download. Сам сервер находится черезGET /v1/infra/serversс параметромincludeDeleted=true. Как убрать ненужные версии — Хранилище исходного кода. - Galaxy-приложение удаляется этим же методом. Если портал размещает приложения в галактиках (несколько приложений работают контейнерами на общем хосте),
DELETE /v1/infra/servers/:idснимает приложение, которым владеет ключ: разбирает его контейнер на хосте и помечает запись удалённой. Ответ —200 { "success": true, "cloudDelete": "not-applicable" }. - Спящую галактику платформа будит сама. Если галактика спит, платформа разбудит её перед разбором контейнера — отдельно будить другое приложение и повторять запрос не нужно. Ошибка 502
GALAXY_HOST_UNREACHABLEозначает, что пробуждение или удаление контейнера не подтверждено. Перед повтором восстановите доступ к хосту. - Отказ будить и провал пробуждения — разные ответы. Если платформе ЗАПРЕЩЕНО поднимать хост (заморожен счёт, истёк доступ, стоит запрет пробуждения), запрос вернёт
409 GALAXY_HOST_WAKE_BLOCKED. Это терминальный отказ: повторять бессмысленно, пока причина не снята. Причина приходит вerror.reason—BILLING_FROZEN,ACCESS_EXPIRED,STOPPEDилиUNKNOWN. Объектаerror.hintв этом ответе нет: он описывает восстановление недоступного хоста, а восстанавливать здесь нечего. - У ответа
502 GALAXY_HOST_UNREACHABLEесть полеerror.hintс планом восстановления. Это объект из четырёх строк:reason— почему хост сейчас недоступен,recovery— что делать,recoveryAction— конкретный вызов для повтора,note— оговорка о том, что статус хоста в выдаче может отставать от реального состояния туннеля. Смысл подсказки: запись сервера сохраняется до тех пор, пока разбор контейнера действительно не выполнится на хосте, поэтому повтор запроса через 1–2 минуты ничего не теряет. При устойчивой ошибке проверьте доступ к хосту и результат удаления контейнера: длительность ошибки сама по себе не доказывает отсутствие хоста. - Недоступность хоста не доказывает, что приложение удалено. Платформа сохраняет приложение и привязку, пока не подтвердит удаление контейнера и тома через хост. Ошибки загрузки гостевой системы или отсутствия туннеля недостаточно. Восстановите доступ к хосту либо удалите галактику вместе с приложениями в кабинете.
- Галактика с неудалёнными приложениями этим методом не удаляется. Если сервер — галактика, на которой есть неудалённые приложения, запрос вернёт 409
GALAXY_HAS_APPSс полемappCount. Удалите приложения по одному, а затем саму галактику. Если приложения удалить нельзя — например, счёт заморожен и галактику не поднять, — удалите галактику вместе с приложениями в кабинете: на публичном интерфейсе такой операции нет.