#Проверить ключ провайдера
POST /v1/ai/credentials/:id/test
Перепроверяет сохранённый ключ у провайдера. Ничего не изменяет в самих учётных данных, но обновляет поля lastError и lastErrorAt ключа в зависимости от результата. Используйте, когда подозреваете, что ключ просрочен или у провайдера сменился API.
#Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
id (path) |
string | да | ID ключа из `GET /v1/ai/credentials` |
#Примеры
#curl — личный ключ
curl -X POST https://vibecode.bitrix24.tech/v1/ai/credentials/cred_abc123def456/test \
-H "X-Api-Key: YOUR_API_KEY"
#curl — OAuth-приложение
curl -X POST https://vibecode.bitrix24.tech/v1/ai/credentials/cred_abc123def456/test \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
#JavaScript — личный ключ
const id = 'cred_abc123def456'
const res = await fetch(`https://vibecode.bitrix24.tech/v1/ai/credentials/${id}/test`, {
method: 'POST',
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data } = await res.json()
console.log(data.valid ? 'Ключ корректен' : `Ошибка: ${data.error}`)
#JavaScript — OAuth-приложение
const id = 'cred_abc123def456'
const res = await fetch(`https://vibecode.bitrix24.tech/v1/ai/credentials/${id}/test`, {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data } = await res.json()
if (!data.valid) alert(`Ключ некорректен: ${data.error}`)
#Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true (даже при некорректном ключе — это не ошибка эндпоинта) |
data.valid |
boolean | true — ключ принят провайдером; false — отвергнут |
data.error |
string | Сообщение об ошибке от провайдера, если valid: false. URL заменены на [URL], длина обрезана до 200 символов |
#Пример ответа
Ключ корректен:
{
"success": true,
"data": {
"valid": true
}
}
Ключ отвергнут провайдером:
{
"success": true,
"data": {
"valid": false,
"error": "OpenAI API 401: Incorrect API key provided"
}
}
#Пример ответа при ошибке
404 not_found — ключ не найден или принадлежит другому пользователю:
{
"success": false,
"error": {
"code": "not_found",
"message": "Credential not found"
}
}
#Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 404 | not_found |
Ключ с таким id не найден или не принадлежит вам |
| 400 | no_key |
В сохранённых учётных данных нет поля apiKey (битый старый ключ) |
| 500 | decryption_error |
Не удалось расшифровать сохранённые учётные данные |
| 403 | scope_missing |
API-ключу не хватает скоупа vibe:ai |
Полный список общих ошибок API — Ошибки.
Лимит проверок: 10 запросов в минуту.
#Известные особенности
Некорректный ключ — не ошибка эндпоинта. Если провайдер отверг ключ — эндпоинт вернёт 200 OK с success: true и data.valid: false. HTTP-ошибки (4xx/5xx) возвращаются только при проблемах с самим запросом (нет ключа, нет доступа, нечего расшифровать).
Запись результата в lastError. Эндпоинт обновляет поля lastError и lastErrorAt ключа в базе. При успехе — обнуляет, при неудаче — записывает текст ошибки от провайдера. Эти поля видны в `GET /v1/ai/credentials`.
Тайм-аут проверки — 10 секунд. Если провайдер не отвечает за 10 секунд — valid: false с сообщением о тайм-ауте.
Custom-провайдер проверяется по baseUrl ключа. Для custom-openai-compat верификация идёт по тому baseUrl, который сохранён в учётных данных. Если у провайдера нет GET /v1/models — выполняется проверка через POST /v1/chat/completions.
#Смотрите также
- Список ключей — найти
idключа и текущее состояниеlastError - Обновить ключ — обновить
apiKeyилиbaseUrlпосле неудачной проверки - Подключить ключ — добавить новый ключ