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

Список ключей

GET /v1/ai/credentials

Возвращает ваши BYOK-ключи (USER scope) и общие ключи текущего портала (PORTAL scope), вместе со статистикой использования за последние 30 дней. PORTAL-ключи подключает администратор в кабинете Вайбкод.

Параметры

Параметров запроса нет.

Примеры

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

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

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

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

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/ai/credentials', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { data } = await res.json()
data.forEach((cred) => {
  console.log(`${cred.name} (${cred.scope}, ${cred.provider.name}) — ${cred.usage.requests} запросов группы за 30 дней`)
})

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/ai/credentials', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { data } = await res.json()
console.log('Подключено ключей:', data.length)

Поля ответа

Поле Тип Описание
success boolean Всегда true при успехе
data array Массив подключённых ключей
data[].id string Уникальный ID ключа
data[].providerId string ID провайдера. Список: GET /v1/ai/providers
data[].provider.slug string Системное имя провайдера: openai, anthropic, custom-openai-compat и т. п.
data[].provider.name string Отображаемое название провайдера
data[].name string Имя ключа, заданное пользователем
data[].scope string Область действия ключа: USER — ваш личный, PORTAL — общий для текущего портала
data[].isDefault boolean Флаг ключа по умолчанию для провайдера
data[].lastError string | null Последняя ошибка верификации (null, если ошибок не было)
data[].lastErrorAt string | null Время последней ошибки в ISO 8601
data[].usage.requests number Количество запросов группы за последние 30 дней: USER — пользователь + провайдер, PORTAL — портал + провайдер
data[].usage.promptTokens number Токены входа той же группы за 30 дней
data[].usage.completionTokens number Токены ответа той же группы за 30 дней
data[].createdAt string Время создания в ISO 8601
data[].updatedAt string Время последнего обновления в ISO 8601

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

JSON
{
  "success": true,
  "data": [
    {
      "id": "cred_abc123def456",
      "providerId": "openai",
      "provider": {
        "slug": "openai",
        "name": "OpenAI"
      },
      "name": "Мой личный OpenAI",
      "scope": "USER",
      "isDefault": true,
      "lastError": null,
      "lastErrorAt": null,
      "usage": {
        "requests": 142,
        "promptTokens": 45200,
        "completionTokens": 18300
      },
      "createdAt": "2026-04-15T10:00:00.000Z",
      "updatedAt": "2026-04-20T14:30:00.000Z"
    }
  ]
}

Если ключи не подключены — data будет пустым массивом:

JSON
{
  "success": true,
  "data": []
}

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

403 scope_missing — у API-ключа нет скоупа vibe:ai:

JSON
{
  "success": false,
  "error": {
    "code": "scope_missing",
    "message": "API key does not have the vibe:ai scope"
  }
}

Ошибки

HTTP Код Описание
403 scope_missing API-ключу не хватает скоупа vibe:ai
401 MISSING_API_KEY Не передан заголовок X-Api-Key

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

Известные особенности

Видны USER- и PORTAL-ключи. В списке есть ваши личные ключи и общие ключи текущего портала. Поле scope позволяет их различать. Операции над отдельным ключом через /v1/ai/credentials/:id (обновление, удаление, проверка, статистика и управление моделями) доступны только для ваших USER-ключей; для PORTAL-ключа или чужого USER-ключа возвращается 404 not_found.

lastError показывает последнюю проблему. Если у ключа lastError отличен от null — провайдер вернул ошибку при последней проверке (через POST /v1/ai/credentials/:id/test или при использовании в чат-комплишене). Поле сбрасывается при успешном PATCH с обновлением credentials или при успешной проверке.

Статистика за фиксированные 30 дней. Поле usage содержит цифры за последние 30 дней без возможности задать период. Это агрегат по пользователю и провайдеру для USER-ключей, по всем пользователям текущего портала и провайдеру для PORTAL-ключей. Несколько ключей одной группы получают одинаковый usage; не суммируйте эти повторяющиеся показатели. Для произвольного периода — GET /v1/ai/credentials/:id/usage?days=N.

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