#Список моделей ключа

GET /v1/ai/credentials/:id/models

Возвращает все модели, привязанные к указанному BYOK-ключу через `fetch-models` или `models-add`. Используется для просмотра текущего каталога Custom-провайдера и поиска id записи перед удалением.

#Параметры

Параметр Тип Обяз. Описание
id (path) string да ID ключа из `GET /v1/ai/credentials`

#Примеры

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

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

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

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

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

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

const { data } = await res.json()
data.forEach((m) => console.log(`${m.modelId} — ${m.name} (${m.status})`))

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

javascript
const id = 'cred_custom_xyz'
const res = await fetch(`https://vibecode.bitrix24.tech/v1/ai/credentials/${id}/models`, {
  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 записи AiModel (нужен для удаления)
data[].modelId string ID модели для использования в model запроса к `/v1/chat/completions`
data[].name string Отображаемое название модели
data[].contextLength number Максимальный размер контекста в токенах
data[].maxOutputTokens number Максимум токенов в ответе
data[].status string Статус: ACTIVE, DEPRECATED, DISABLED
data[].isEnabled boolean Глобальный выключатель: false — модель скрыта из всех каталогов
data[].createdAt string Время первой регистрации в ISO 8601

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

JSON
{
  "success": true,
  "data": [
    {
      "id": "aimodel_xyz789",
      "modelId": "abab6.5-chat",
      "name": "MiniMax abab6.5-chat",
      "contextLength": 32768,
      "maxOutputTokens": 8192,
      "status": "ACTIVE",
      "isEnabled": true,
      "createdAt": "2026-04-25T09:00:00.000Z"
    },
    {
      "id": "aimodel_old001",
      "modelId": "old-model-v1",
      "name": "Старая модель",
      "contextLength": 16384,
      "maxOutputTokens": 4096,
      "status": "DEPRECATED",
      "isEnabled": true,
      "createdAt": "2026-04-15T09:00:00.000Z"
    }
  ]
}

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

404 not_found — ключ не найден или принадлежит другому пользователю:

JSON
{
  "success": false,
  "error": {
    "code": "not_found",
    "message": "Credential not found"
  }
}

#Ошибки

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

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

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

status: DEPRECATED после fetch-models. Если модель ранее была загружена через fetch-models, но в последнем запуске больше не пришла от провайдера — её статус автоматически меняется на DEPRECATED. Запросы к ней ещё работают, но в каталоге `GET /v1/models` она помечена как устаревшая.

Работает для всех провайдеров, не только Custom. Эндпоинт возвращает любые модели, привязанные к ключу. Для стандартных провайдеров обычно data пустой — у них модели платформенные (credentialId: null), не привязанные к конкретному ключу.

id нужен для удаления. Чтобы удалить модель — сохраните id записи и передайте в `DELETE /v1/ai/credentials/:credId/models/:modelRowId`. modelId не подходит — он не уникален между ключами.

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