#Список моделей ключа
GET /v1/ai/credentials/:id/models
Возвращает все модели, привязанные к указанному BYOK-ключу через `fetch-models` или `models-add`. Используется для просмотра текущего каталога Custom-провайдера и поиска id записи перед удалением.
#Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
id (path) |
string | да | ID ключа из `GET /v1/ai/credentials` |
#Примеры
#curl — личный ключ
curl https://vibecode.bitrix24.tech/v1/ai/credentials/cred_custom_xyz/models \
-H "X-Api-Key: YOUR_API_KEY"
#curl — OAuth-приложение
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 — личный ключ
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-приложение
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 |
#Пример ответа
{
"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 — ключ не найден или принадлежит другому пользователю:
{
"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 не подходит — он не уникален между ключами.
#Смотрите также
- Загрузить каталог моделей — массовое наполнение списка
- Добавить модель вручную — добавление одной модели
- Удалить модель ключа — удаление по
idзаписи - Список моделей — общий каталог моделей с учётом статуса