Для AI-агентов: markdown этой страницы — /docs-content/infra/servers/list.md индекс документации — /llms.txt
Список серверов
GET /v1/infra/servers
Возвращает серверы, которыми управляет текущий API-ключ. Удалённые серверы (status: "deleted") в выдачу по умолчанию не попадают — чтобы их увидеть, передайте ?includeDeleted=true. Серверы других ключей — даже в том же портале — не видны. Для просмотра всех серверов портала используйте панель администратора в личном кабинете.
Параметры запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
includeDeleted |
string | Нет | Передайте true, чтобы в выдачу попали и удалённые серверы. Любое другое значение (как и отсутствие параметра) оставляет выдачу по умолчанию |
Зачем это нужно: исходники переживают сервер. Удалив сервер, вы по-прежнему можете посмотреть его версии исходников, снять с них тег, скачать или очистить — но для этого нужен его идентификатор, а получить его больше неоткуда. Контракт исходников описан на странице Хранилище исходников.
Примеры
curl — личный ключ
curl -H "X-Api-Key: YOUR_API_KEY" \
https://vibecode.bitrix24.tech/v1/infra/servers
curl — OAuth-приложение
curl -H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
https://vibecode.bitrix24.tech/v1/infra/servers
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/infra/servers', {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data: servers } = await res.json()
servers.forEach(s => {
const ready = s.status === 'running' && s.blackholeStatus === 'CONNECTED'
console.log(`${s.name}: ${ready ? '✓ готов' : s.status} — ${s.appUrl}`)
})
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/infra/servers', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data: servers } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data |
array | Массив серверов. Каждый элемент — такой же объект, как у GET /v1/infra/servers/:id, за исключением: SSH-полей ssh.password и ssh.privateKey (в списке не отдаются) и полей localPort / buildLog / buildHint (только у одиночного GET /:id) |
data[].id |
string (UUID) | ID сервера |
data[].status |
string | Текущий статус: provisioning, running, sleeping, error. Удалённые серверы (deleted) в выдачу по умолчанию не попадают — см. includeDeleted |
data[].deletedAt |
string | null | Момент удаления сервера в ISO-8601. null у живых серверов |
data[].provider |
string | ID провайдера |
data[].kind |
string | Тип ресурса: STANDALONE (отдельная виртуальная машина), GALAXY (галактика — хост-носитель galaxy-приложений) или GALAXY_APP (galaxy-приложение на общем хосте). Определяет контракт деплоя |
data[].galaxyId |
string (UUID) | null | Для GALAXY_APP — ID хоста-носителя. Для остальных типов null |
data[].appCount |
number | null | Для GALAXY-хоста — число неудалённых приложений на нём. Для остальных типов null |
data[].name |
string | Системное имя сервера |
data[].displayName |
string | null | Отображаемое имя для личного кабинета. Если не передавалось — совпадает с name |
data[].description |
string | null | Описание приложения для карточки каталога Битрикс24. null, если описание не задавали. Меняется через PATCH /v1/infra/servers/:id |
data[].ip |
string | null | Публичный IP (может быть null, пока идёт создание сервера) |
data[].ssh |
object | null | Блок SSH-данных: { user, port, hasPassword }. Поля password и privateKey в списке не присутствуют |
data[].plan |
string | Тариф. Для galaxy-приложения (kind: "GALAXY_APP") возвращается тариф хоста-носителя, а не запрошенный |
data[].region |
string | Фактический регион сервера — может отличаться от запрошенного после переключения на запасную зону. Для galaxy-приложения возвращается регион хоста-носителя |
data[].image |
string | Образ ОС |
data[].monthlyCost |
string | Каталожная месячная стоимость в Вайбах (Ꝟ), строкой: "1200" или "1200.00". Фактическое списание может отличаться. Сравнивайте с Number(s.monthlyCost) |
data[].mode |
string | BLACKHOLE или OPEN |
data[].createdVia |
string | api — вызов через API Вайбкод, ui — действие в личном кабинете, galaxy — galaxy-приложение. У серверов агентов и ботов приходят собственные значения |
data[].subdomain |
string | Субдомен для приложения |
data[].blackholeStatus |
string | Состояние туннеля: NONE, WAITING, CONNECTED, DISCONNECTED |
data[].accessPolicy |
string | Политика доступа: OWNER_ONLY, NAMED_USERS, DEPARTMENT, PORTAL, AUTHENTICATED, PUBLIC |
data[].runtimeId |
string | null | ID рантайма, установленного через POST /:id/deploy (создание сервера всегда даёт null). |
data[].runtimeStatus |
string | null | Устаревшее поле, оставлено для совместимости. Для серверов, созданных после 2026-04-25, всегда возвращается null. Рантайм ставится на этапе POST /:id/deploy, а сигнал его готовности — успех шага runtime в ответе деплоя, а не значение этого поля |
data[].appUrl |
string | null | HTTPS-адрес приложения |
data[].sleepAfterMinutes |
number | null | Через сколько минут простоя сервер автоматически усыпляется. null — не усыплять автоматически |
data[].provisionError |
string | null | Краткая причина последней ошибки создания или сборки. null, если ошибок не было |
data[].provisionErrorCode |
string | null | Машиночитаемый код категории сбоя: PREEMPTIBLE_EVICTION / PROVISION_TIMEOUT / NO_CAPACITY / GENERIC. null, если ошибок не было |
data[].provisionReason |
string | null | Структурный признак причины сбоя galaxy-приложения: oom — не хватило памяти контейнера, или crash. null у обычных серверов и когда сбоя не было. Значение oom — сигнал перенести приложение на выделенный сервер, порядок описан в Создать сервер |
data[].createdAt |
string (ISO 8601) | Момент создания |
Пример ответа
{
"success": true,
"data": [
{
"id": "e765edfc-ba0a-43de-b8ea-838dd872c522",
"status": "running",
"provider": "bitrix-cloud",
"kind": "STANDALONE",
"galaxyId": null,
"appCount": null,
"name": "vibe-server-pd9l",
"displayName": "vibe-server-pd9l",
"description": null,
"ip": "111.88.251.211",
"ssh": {
"user": "ubuntu",
"port": 22,
"hasPassword": true
},
"plan": "bc-small",
"region": "ru-central1-a",
"image": "fd80bm0rh4rkepi5ksdi",
"monthlyCost": "1200",
"mode": "OPEN",
"createdVia": "ui",
"subdomain": "app-05b67cf7",
"blackholeStatus": "CONNECTED",
"accessPolicy": "OWNER_ONLY",
"runtimeId": null,
"runtimeStatus": null,
"appUrl": "https://app-05b67cf7.vibecode.bitrix24.tech",
"sleepAfterMinutes": null,
"provisionError": null,
"provisionErrorCode": null,
"provisionReason": null,
"createdAt": "2026-04-03T13:30:25.819Z"
}
]
}
Пример ответа при ошибке
401 — не передан API-ключ:
{
"success": false,
"error": {
"code": "MISSING_API_KEY",
"message": "API key required. Pass via X-Api-Key header."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | INVALID_API_KEY |
Неверный или просроченный API-ключ |
| 429 | RATE_LIMITED |
Превышен общий лимит запросов платформы |
Полный список общих ошибок API — Ошибки.
Известные особенности
- Пустой массив при работающих серверах означает, что текущий ключ ими не управляет. Выдача ограничена серверами текущего ключа. После истечения или отзыва прежнего ключа сервер остаётся привязан к нему. Если прежний ключ удалён, сервер остаётся без управляющего ключа. В обоих случаях новый ключ возвращает пустой
data, хотя серверы работают и видны в личном кабинете. Как вернуть доступ — Восстановление доступа к серверу. - Даже администратор портала видит только свои серверы. Для портальной картины используйте панель администратора в личном кабинете — ограничение по API-ключу фиксировано.
- Серверы порталов, помеченных удалёнными в Битрикс24, автоматически скрываются. Платформа ежедневно проверяет доступность порталов: если портал отвечает 410/403 три дня подряд, он помечается как удалённый и его серверы перестают отображаться.
- Ответ не пагинируется — все серверы ключа возвращаются одним массивом.
includeDeleted=trueне показывает серверы удалённых порталов. Скрытие по признаку удалённого портала (см. выше) действует при любом значении параметра: портала больше нет, поэтому вызов к таким серверам бессмысленен.