Для AI-агентов: markdown этой страницы — /docs-content/infra/servers/delete.md индекс документации — /llms.txt
Удалить сервер
DELETE /v1/infra/servers/:id
Удаляет сервер безвозвратно: виртуальная машина уничтожается у провайдера, запись в базе помечается как DELETED, открытые биллинг-транзакции финализируются. Восстановить удалённый сервер нельзя — создавайте новый через 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 при успешном удалении |
Ответ короткий — тело { "success": true } подтверждает факт удаления. Дополнительных данных не возвращается.
Пример ответа
{
"success": true
}
Пример ответа при ошибке
404 — сервер уже удалён или не существует:
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Server not found"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | INVALID_API_KEY |
Неверный или просроченный API-ключ |
| 404 | NOT_FOUND |
Сервер не найден, принадлежит другому API-ключу, или уже был удалён |
| 409 | GALAXY_HAS_APPS |
Сервер — галактика, на которой есть неудалённые приложения. Тело содержит appCount. Удалить галактику вместе с её приложениями можно в кабинете |
| 409 | GALAXY_HOST_WAKE_BLOCKED |
Galaxy-приложение: его хост запрещено будить — например, заморожен счёт. Отказ терминальный, повтор не поможет. Тело содержит error.reason — см. «Известные особенности» |
| 502 | GALAXY_HOST_UNREACHABLE |
Galaxy-приложение: пробуждение хоста началось и не удалось. Ответ несёт error.hint с планом восстановления — см. «Известные особенности» |
| 429 | RATE_LIMITED |
Превышен общий лимит запросов платформы |
Полный список общих ошибок API — Ошибки.
Известные особенности
- Обработка 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 }, как для обычного сервера. - Спящую галактику платформа будит сама. Если галактика спит, платформа разбудит её перед разбором контейнера — отдельно будить другое приложение и повторять запрос не нужно. Ошибка 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 минуты ничего не теряет. Если состояние держится дольше 15 минут, хост недоступен по-настоящему. - Галактика с неудалёнными приложениями этим методом не удаляется. Если сервер — галактика, на которой есть неудалённые приложения, запрос вернёт 409
GALAXY_HAS_APPSс полемappCount. Удалите приложения по одному, а затем саму галактику. Если приложения удалить нельзя — например, счёт заморожен и галактику не поднять, — удалите галактику вместе с приложениями в кабинете: на публичном интерфейсе такой операции нет.