#Удалить модель ключа
DELETE /v1/ai/credentials/:credId/models/:modelRowId
Удаляет одну модель, привязанную к BYOK-ключу. После удаления модель пропадает из `GET /v1/models`, а запросы к ней через `/v1/chat/completions` возвращают 404 ai_model_not_found. История вызовов в AiUsageLog сохраняется.
#Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
credId (path) |
string | да | ID ключа из `GET /v1/ai/credentials` |
modelRowId (path) |
string | да | ID записи модели (data[].id) из `GET /v1/ai/credentials/:id/models` — это не modelId, а первичный ключ записи AiModel |
#Примеры
#curl — личный ключ
curl -X DELETE https://vibecode.bitrix24.tech/v1/ai/credentials/cred_custom_xyz/models/aimodel_xyz789 \
-H "X-Api-Key: YOUR_API_KEY"
#curl — OAuth-приложение
curl -X DELETE https://vibecode.bitrix24.tech/v1/ai/credentials/cred_custom_xyz/models/aimodel_xyz789 \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
#JavaScript — личный ключ
const credId = 'cred_custom_xyz'
const modelRowId = 'aimodel_xyz789'
const res = await fetch(
`https://vibecode.bitrix24.tech/v1/ai/credentials/${credId}/models/${modelRowId}`,
{ method: 'DELETE', headers: { 'X-Api-Key': 'YOUR_API_KEY' } },
)
const { success } = await res.json()
if (success) console.log('Модель удалена из каталога ключа')
#JavaScript — OAuth-приложение
const credId = 'cred_custom_xyz'
const modelRowId = 'aimodel_xyz789'
const res = await fetch(
`https://vibecode.bitrix24.tech/v1/ai/credentials/${credId}/models/${modelRowId}`,
{
method: 'DELETE',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
},
)
if ((await res.json()).success) console.log('OK')
#Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
#Пример ответа
HTTP-статус 200 OK:
{
"success": true
}
#Пример ответа при ошибке
404 not_found — ключ или модель не найдены, либо ключ принадлежит другому пользователю:
{
"success": false,
"error": {
"code": "not_found",
"message": "Credential not found"
}
}
#Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 404 | not_found |
Ключ с таким credId не найден / не принадлежит вам, либо модель с таким modelRowId не привязана к ключу |
| 403 | scope_missing |
API-ключу не хватает скоупа vibe:ai |
Полный список общих ошибок API — Ошибки.
Лимит удаления моделей: 30 запросов в минуту.
#Известные особенности
modelRowId — первичный ключ записи, не modelId. Один и тот же modelId может встречаться у разных ключей (одинаковая модель gpt-4o у двух BYOK), поэтому удаление идёт по уникальному id записи AiModel. Получите его из `GET /v1/ai/credentials/:id/models`, поле data[].id.
История вызовов сохраняется. Записи AiUsageLog не удаляются — статистика по этой модели за прошлые периоды останется в `GET /v1/ai/usage`. Поля modelId и providerId в логах хранятся как строки, без FK-связи с таблицей AiModel.
Не путайте с DEPRECATED. Модель в статусе DEPRECATED ещё работает — её просто не рекомендуется использовать. Удалённая модель полностью пропадает: запросы к её modelId возвращают 404 ai_model_not_found. Чтобы пометить модель устаревшей вместо удаления — обратитесь к администратору портала.
Каскадное удаление с ключом. Если удалить сам ключ через `DELETE /v1/ai/credentials/:id` — все привязанные модели удаляются вместе с ним. Этот эндпоинт нужен, чтобы убрать одну модель, оставив остальные.
#Смотрите также
- Список моделей ключа — найти
modelRowId - Удалить ключ — каскадное удаление вместе с моделями
- Загрузить каталог моделей — повторная загрузка после очистки