Для AI-агентов: markdown этой страницы — /docs-content/infra/servers/list.md индекс документации — /llms.txt

Список серверов

GET /v1/infra/servers

Возвращает серверы, которыми управляет текущий API-ключ. Удалённые серверы (status: "deleted") в выдачу по умолчанию не попадают — чтобы их увидеть, передайте ?includeDeleted=true. Серверы других ключей — даже в том же портале — не видны. Для просмотра всех серверов портала используйте панель администратора в личном кабинете.

Параметры запроса

Параметр Тип Обязательный Описание
includeDeleted string Нет Передайте true, чтобы в выдачу попали и удалённые серверы. Любое другое значение (как и отсутствие параметра) оставляет выдачу по умолчанию

Зачем это нужно: исходники переживают сервер. Удалив сервер, вы по-прежнему можете посмотреть его версии исходников, снять с них тег, скачать или очистить — но для этого нужен его идентификатор, а получить его больше неоткуда. Контракт исходников описан на странице Хранилище исходников.

Примеры

curl — личный ключ

Terminal
curl -H "X-Api-Key: YOUR_API_KEY" \
  https://vibecode.bitrix24.tech/v1/infra/servers

curl — OAuth-приложение

Terminal
curl -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  https://vibecode.bitrix24.tech/v1/infra/servers

JavaScript — личный ключ

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-приложение

javascript
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) Момент создания

Пример ответа

JSON
{
  "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-ключ:

JSON
{
  "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 не показывает серверы удалённых порталов. Скрытие по признаку удалённого портала (см. выше) действует при любом значении параметра: портала больше нет, поэтому вызов к таким серверам бессмысленен.

Смотрите также