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

Получить метаданные версии

GET /v1/apps/:id/sources/:versionId

Возвращает метаданные одной версии исходного кода приложения, без архива. Нужен, когда идентификатор версии уже известен и полный список забирать незачем.

Операция доступна и при отключённом сохранении исходников: ранее сохранённая история остаётся читаемой.

Параметры

Параметр Тип Обяз. Описание
id (path) UUID да Идентификатор приложения. Получить — GET /v1/apps.
versionId (path) string да Идентификатор версии вида v<N>. Получить — Список версий. Номер savedVersionId из ответа деплоя сервера на личном ключе относится к истории сервера, а не приложения: по нему этот метод вернёт другую версию приложения или 404 VERSION_NOT_FOUND. Такую версию запрашивайте через серверные эндпоинты.

Примеры

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

Terminal
curl -H "X-Api-Key: YOUR_API_KEY" \
  https://vibecode.bitrix24.tech/v1/apps/<APP_ID>/sources/v1

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

Terminal
curl -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  https://vibecode.bitrix24.tech/v1/apps/<APP_ID>/sources/v1

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

javascript
const res = await fetch(
  `https://vibecode.bitrix24.tech/v1/apps/${appId}/sources/v1`,
  { headers: { 'X-Api-Key': 'YOUR_API_KEY' } },
)
const { data } = await res.json()
console.log(data.versionId, data.tags, data.note)

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

javascript
const res = await fetch(
  `https://vibecode.bitrix24.tech/v1/apps/${appId}/sources/v1`,
  {
    headers: {
      'X-Api-Key': 'YOUR_APP_KEY',
      'Authorization': 'Bearer USER_SESSION_TOKEN',
    },
  },
)
const { data } = await res.json()
console.log(data.versionId, data.tags, data.note)

Поля ответа

Поля data.id в этом ответе нет: внутренний идентификатор записи приходит только при сохранении.

Поле Тип Описание
success boolean Всегда true при успехе.
data.versionId string Идентификатор версии вида v<N>.
data.filename string Имя файла в хранилище. Содержит суффикс -published или -manual по текущим тегам версии, при обоих тегах — -published.
data.contentType string | null Тип архива, с которым его сохранили: application/gzip, application/x-tar, application/zip или application/octet-stream. null — у ранних версий, для которых тип не записан.
data.timestamp string Время сохранения (ISO 8601, UTC).
data.size number Размер архива в байтах.
data.sha256 string SHA-256 содержимого архива. Используется для дедупликации в пределах владельца.
data.tags string[] Теги версии. manual и published защищают её от автоматической очистки, остальные — произвольные метки из заголовка X-Tags при сохранении или из PATCH.
data.savedBy.userId string | null Идентификатор пользователя Вайбкод.
data.savedBy.session string | null Идентификатор AI-сессии из заголовка X-AI-Session-Id.
data.linkedDeployId string | null Метка последнего события с версией. deploy:… — версию сохранил или подтвердил деплой. publish:<время> — версию опубликовали через POST /v1/apps/:id/publish. Публикация перезаписывает метку деплоя. null — у версии не было ни деплоя, ни публикации.
data.deployStatus string | null Чем закончился последний деплой этой версии: success или failed. null — версию не деплоили: например, сохранили вручную и не передавали в source.versionId деплоя. Публикация поле не меняет, но у части старых опубликованных версий success записан публикацией, а не деплоем.
data.note string | null Комментарий из заголовка X-Note при сохранении или из PATCH. У версии, которую сохранил деплой, — текст поля changelog деплоя, а без него служебная строка Auto-saved on deploy … с той же меткой деплоя, что в linkedDeployId.
data.serverContext object | null Сервер, которым управляет ключ этого приложения (vibe_app_*), если версия с ним связана. Данные сервера — на момент запроса. null — версия с сервером не связана.
data.serverContext.serverId string Идентификатор сервера. Получить — GET /v1/infra/servers.
data.serverContext.serverName string Системное имя сервера.
data.serverContext.serverDisplayName string Отображаемое имя сервера. Пустая строка, если у сервера его нет.
data.serverContext.linkedApp object | null Приложение, на которое выписан управляющий ключ сервера. null — сервер управляется личным ключом.
data.serverContext.linkedApp.appId string Идентификатор приложения. Получить — GET /v1/apps.
data.serverContext.linkedApp.title string Название приложения.

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

HTTP 200:

JSON
{
  "success": true,
  "data": {
    "versionId": "v1",
    "filename": "2026-08-04T10-01-25-947Z-v1.tar.gz",
    "contentType": "application/gzip",
    "timestamp": "2026-08-04T10:01:25.947Z",
    "size": 49504,
    "sha256": "e28aaf8af203804c934e6881c94472a420174f58c9442ecef82dba44c6cf989b",
    "tags": [],
    "savedBy": {
      "userId": "48bdfd33-5fbe-4ad1-a02c-9b5c7ae65f77",
      "session": null
    },
    "linkedDeployId": null,
    "deployStatus": null,
    "note": "Первая версия",
    "serverContext": null
  }
}

Пример ответа при ошибке

404 — версии с таким идентификатором у приложения нет:

JSON
{
  "success": false,
  "error": {
    "code": "VERSION_NOT_FOUND",
    "message": "Version v99 not found"
  }
}

Ошибки

HTTP Код Описание
400 INVALID_VERSION_ID Формат versionId не соответствует v<целое неотрицательное число>.
403 SOURCE_APP_ID_MISMATCH Вызов сделан ключом авторизации vibe_app_…, выписанным на другое приложение. Такой ключ обращается только к снапшотам своего приложения, даже если оба приложения создал один автор.
403 NOT_AUTHORIZED Личный ключ не принадлежит ни автору приложения, ни администратору портала и не выписан на это приложение.
404 APP_NOT_FOUND Приложение не существует, удалено или принадлежит другому порталу.
404 VERSION_NOT_FOUND Версия с таким versionId не существует или была удалена.

Полный список общих ошибок API — Ошибки.

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