Для AI-агентов: markdown этой страницы — /docs-content/management-keys/update.md индекс документации — /llms.txt
Изменить API-ключ
PATCH /v1/keys/:id
Изменяет настройки API-ключа владельца менеджмент-ключа. Тело плоское, без обёртки fields: передавайте только поля, которые меняются.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
Параметрid (path) |
Типstring | Обяз.да | ОписаниеИдентификатор записи ключа. Список: GET /v1/keys |
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
Полеname |
Типstring | Обяз.нет | ОписаниеНазвание ключа, от 1 до 255 символов. Название только из пробелов не принимается |
Полеscopes |
Типstring[] | Обяз.нет | ОписаниеНовый полный список скоупов ключа, не меньше одного. Набор прав проверяется так же, как при создании. Право vibe:storage добавляется только личному ключу. Ключу приложения и ключу неизвестного происхождения его можно прислать без изменения или снять |
Полеstatus |
Типstring | Обяз.нет | ОписаниеACTIVE — вернуть ключ в работу, REVOKED — отозвать |
Полеmode |
Типstring | Обяз.нет | ОписаниеРежим доступа ключа: READWRITE или READONLY. Подробнее — Режим доступа. Перевод в READWRITE запрещён, если политика портала требует READONLY |
ПолеipWhitelist |
Типstring[] | Обяз.нет | ОписаниеРазрешённые IP-адреса. Пустой массив снимает ограничение |
ПолеexpiresAt |
Типstring | null | Обяз.нет | ОписаниеДата окончания срока действия в формате ISO 8601. null — бессрочный ключ |
ПолеrateLimit |
Типnumber | null | Обяз.нет | ОписаниеИндивидуальный лимит запросов к AI-эндпоинтам. Принимается только текущее значение ключа: изменение отвечает 403 RATE_LIMIT_ADMIN_ONLY |
ПолеtotalDefault |
Типboolean | null | Обяз.нет | ОписаниеПриходит ли meta.total в списках, запрошенных этим ключом. null — действует настройка платформы |
Примеры
Запрос принимает только менеджмент-ключ — см. Ограничения.
curl — менеджмент-ключ
curl -X PATCH "https://vibecode.bitrix24.tech/v1/keys/6dbad0ce-79a9-43f5-8ca4-3e1af7ef63bc" \
-H "X-Api-Key: YOUR_MANAGEMENT_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Интеграция с CRM и задачами"
}'
JavaScript — менеджмент-ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/keys/6dbad0ce-79a9-43f5-8ca4-3e1af7ef63bc', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_MANAGEMENT_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'Интеграция с CRM и задачами',
}),
})
const { success, data } = await res.json()
console.log('Ключ:', data.name, '—', data.status)
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
Полеsuccess |
Типboolean | ОписаниеВсегда true при успехе |
Полеdata.id |
Типstring | ОписаниеИдентификатор записи ключа |
Полеdata.name |
Типstring | ОписаниеНазвание ключа |
Полеdata.prefix |
Типstring | ОписаниеПервые символы значения ключа |
Полеdata.suffix |
Типstring | ОписаниеПоследние четыре символа значения ключа |
Полеdata.type |
Типstring | ОписаниеТип записи ключа, всегда APP |
Полеdata.userId |
Типstring | ОписаниеИдентификатор владельца ключа |
Полеdata.portalId |
Типstring | ОписаниеИдентификатор портала |
Полеdata.clientId |
Типstring | null | ОписаниеИдентификатор клиента OAuth, если он записан на ключе. Иначе null |
Полеdata.scopes |
Типarray | ОписаниеСкоупы ключа после изменения |
Полеdata.ipWhitelist |
Типarray | ОписаниеРазрешённые IP-адреса. Пустой массив — без ограничения |
Полеdata.expiresAt |
Типstring | null | ОписаниеДата окончания срока действия (ISO 8601), null — бессрочный |
Полеdata.rateLimit |
Типnumber | null | ОписаниеИндивидуальный лимит запросов к AI-эндпоинтам, null — общий лимит платформы |
Полеdata.status |
Типstring | ОписаниеACTIVE, REVOKED, EXPIRED или BLOCKED |
Полеdata.lastUsedAt |
Типstring | null | ОписаниеДата последнего запроса этим ключом (ISO 8601) |
Полеdata.createdAt |
Типstring | ОписаниеДата создания (ISO 8601) |
Полеdata.updatedAt |
Типstring | ОписаниеДата последнего изменения (ISO 8601) |
Полеdata.accessMode |
Типstring | ОписаниеREADWRITE или READONLY |
Полеdata.totalDefault |
Типboolean | null | ОписаниеПриходит ли meta.total в списках, запрошенных этим ключом. null — действует настройка платформы |
Полеdata.issuedVia |
Типstring | null | ОписаниеКанал, которым выписан вебхук ключа: per-portal и cloud-shared — модуль-коннектор на портале, dev_key — ключ разработчика владельца, legacy — регистрация через Битрикс24 Network, none — вебхук не заводился. null, если канал не записан |
Поля b24Ready в ответе нет. Узнать его можно запросом GET /v1/keys/:id.
Пример ответа
{
"success": true,
"data": {
"id": "6dbad0ce-79a9-43f5-8ca4-3e1af7ef63bc",
"name": "Интеграция с CRM и задачами",
"prefix": "vibe_api_XXXXXXXXX",
"suffix": "XXXX",
"type": "APP",
"userId": "fafa9780-eed7-4d29-b040-2448d924f452",
"portalId": "0d9f7744-f853-47c7-b06e-6f61f9dd1b7f",
"clientId": null,
"scopes": ["crm", "task", "tasks", "im"],
"ipWhitelist": [],
"expiresAt": null,
"rateLimit": null,
"status": "ACTIVE",
"lastUsedAt": "2026-10-28T13:11:06.013Z",
"createdAt": "2026-05-18T10:22:10.950Z",
"updatedAt": "2026-10-29T12:16:49.962Z",
"accessMode": "READWRITE",
"totalDefault": null,
"issuedVia": null
}
}
Пример ответа при ошибке
403 — ключу авторизации приложения добавляется право Битрикс24:
{
"success": false,
"error": {
"code": "OAUTH_SCOPE_CHANGE_REQUIRES_REISSUE",
"message": "Набор прав OAuth-приложения нельзя изменить у существующего ключа — права фиксируются при выдаче. Создайте новый ключ авторизации с нужным набором прав."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| HTTP400 | КодVALIDATION_ERROR |
ОписаниеПоле тела не прошло проверку: название из пробелов или длиннее 255 символов, неизвестное значение status, mode или скоупа, пустой список scopes, некорректный IP-адрес, rateLimit вне диапазона от 1 до 100 000 |
| HTTP400 | КодINVALID_JSON_BODY |
ОписаниеТело запроса — некорректный JSON |
| HTTP400 | КодPERSONAL_KEY_WEBHOOK_SCOPES_INVALID |
ОписаниеНовый список scopes не содержит ни одного права на данные: остались только placement, entity и userfieldtype. Проверка идёт до обращения к порталу |
| HTTP400 | КодPERSONAL_KEY_WEBHOOK_SCOPES_INVALID |
ОписаниеПортал отказался сохранить на вебхуке ключа все права Битрикс24 из нового списка. Права ключа не меняются |
| HTTP400 | КодINVALID_SCOPES |
ОписаниеЧасть новых прав недоступна на портале. Права ключа не меняются |
| HTTP400 | КодBOX_NO_DEVELOPER_KEY |
ОписаниеПрава Битрикс24 меняются на портале, где они проверяются на стороне Битрикс24, а у владельца ключа нет ключа разработчика. Права ключа не меняются |
| HTTP402 | КодACCOUNT_FROZEN |
ОписаниеБаланс аккаунта заморожен. Запрос, в теле которого только {"status": "REVOKED"}, проходит и на замороженном аккаунте |
| HTTP403 | КодKEY_BLOCKED |
ОписаниеКлюч заблокирован (status: BLOCKED) и не изменяется. Заменить его можно только перевыпуском |
| HTTP403 | КодRATE_LIMIT_ADMIN_ONLY |
ОписаниеЗапрос меняет rateLimit. Индивидуальный лимит через этот эндпоинт не меняется |
| HTTP403 | КодKEY_POLICY_READONLY_REQUIRED |
ОписаниеЗапрос переводит ключ в READWRITE, а политика портала требует для ключей READONLY. Исключение для отдельного ключа выдаёт администратор портала |
| HTTP403 | КодOAUTH_SCOPE_CHANGE_REQUIRES_REISSUE |
ОписаниеКлючу авторизации приложения (vibe_app_) добавляется право Битрикс24. Права такого ключа фиксируются при выдаче — создайте новый ключ авторизации с нужным набором. Снятие прав проходит |
| HTTP403 | КодKEY_STORAGE_SCOPE_REQUIRES_PERSONAL_KEY |
ОписаниеНовый список добавляет vibe:storage ключу приложения или ключу неизвестного происхождения. Создайте новый личный ключ с правом хранилища |
| HTTP403 | КодINFRA_DISABLED_FOR_PORTAL |
ОписаниеНовый список добавляет право vibe:infra, которого у ключа не было, а администратор портала выключил работу с серверами. Права ключа не меняются. Правка ключа, который это право уже несёт, проходит и на закрытом портале, снятие права разрешено всегда |
| HTTP403 | КодONEC_ACCESS_REQUIRED |
ОписаниеНовый список добавляет право vibe:onec, которого у ключа не было, а у владельца ключа нет доступа к 1С. Проверяется доступ владельца, а не того, кто отправил запрос. Права ключа не меняются. Правка ключа, который это право уже несёт, проходит без проверки |
| HTTP403 | КодSCOPE_NOT_AVAILABLE_ON_PORTAL |
ОписаниеНовый список добавляет право, которое на этом портале не выдаётся. Сообщение называет такие права |
| HTTP403 | КодSYSTEM_KEY_REACTIVATE_FORBIDDEN |
ОписаниеЗапрос переводит в ACTIVE или продлевает срок ключа, который платформа выдаёт на своём эндпоинте: настольного приложения Cowork/Code, агента, проектного ключа для деплоя. В тексте ответа сказано, где этот ключ выдаётся заново |
| HTTP403 | КодCOWORK_PLATFORM_DISABLED |
ОписаниеКлюч, оплачиваемый подпиской Cowork/Code, переводится в ACTIVE или продлевается, а Cowork/Code отключён на уровне платформы |
| HTTP403 | КодCOWORK_ACCESS_REQUIRED |
ОписаниеТо же для ключа подписки: владельцу ключа доступ к Cowork/Code не открыт |
| HTTP403 | КодCOWORK_EXTERNAL_CLIENTS_DISABLED |
ОписаниеТо же для ключа подписки: администратор портала запретил сторонние клиенты |
| HTTP403 | КодCOWORK_SUBSCRIPTION_INACTIVE |
ОписаниеТо же для ключа подписки: подписка Cowork/Code приостановлена или отменена |
| HTTP403 | КодCOWORK_SEAT_KEY_MODE_CABINET_ONLY |
ОписаниеЗапрос меняет mode ключа настольного приложения Cowork/Code. Это режим всего места, и меняется он в кабинете, где видно, что сузится вместе с ним |
| HTTP403 | КодCOWORK_KEY_MODE_ABOVE_SEAT |
ОписаниеЗапрос поднимает mode ключа стороннего агента на подписке Cowork/Code выше режима места. Сначала расширяют место, в его пределах правка проходит. Тот же код приходит, если место сузили, пока выполнялся запрос |
| HTTP403 | КодWRITE_BLOCKED_READONLY_KEY |
ОписаниеМенеджмент-ключ, которым отправлен запрос, работает в режиме READONLY |
| HTTP403 | КодMANAGEMENT_SCOPE_REQUIRED |
ОписаниеУ менеджмент-ключа нет скоупа vibe:mgmt:keys |
| HTTP404 | КодKEY_NOT_FOUND |
ОписаниеКлюча с таким id нет, он принадлежит другому пользователю или это менеджмент-ключ |
| HTTP409 | КодREISSUE_IN_PROGRESS |
ОписаниеТолько ключ авторизации (vibe_app_): запрос меняет mode, status или expiresAt, а с ключом этого приложения уже идёт другая операция — перевыпуск, изменение или удаление. Ключ не меняется, повторите запрос после её завершения |
| HTTP409 | КодKEY_NOT_ACTIVE |
ОписаниеТолько ключ авторизации (vibe_app_): ключ уже не действует или изменился после начала запроса — например, его отозвали или удалили. Смена mode у отозванного ключа авторизации тоже отвечает этим кодом. Ключ не меняется. Перечитайте его через GET /v1/keys/:id |
| HTTP409 | КодKEY_MANAGES_FOREIGN_SERVER |
ОписаниеОтзыв ключа, который управляет живым сервером другого владельца, сервером без владельца или сервером того же владельца на другом портале. Установите владельца и нужный портал сервера, затем перепривяжите его к ключу этого владельца в том же портале и повторите отзыв |
| HTTP409 | КодKEY_OPERATION_IN_PROGRESS |
ОписаниеПеренос, отзыв или конкурентная правка прав ключа ещё не завершены. Перечитайте ключ и повторите правку по свежему набору прав |
| HTTP409 | КодPORTAL_ADDRESS_CHANGED |
ОписаниеКоробочный портал переехал на новый адрес, а вебхук ключа выписан на прежний. Запрос к порталу не отправляется, права ключа не меняются ни на платформе Вайбкод, ни в Битрикс24. Переподключите ключ и повторите правку — порядок описан в статье Авторизация, ключи и права |
| HTTP410 | КодSTALE_DEVELOPER_KEY |
ОписаниеКлюч разработчика владельца недействителен и автоматически не перевыпускается. Права ключа не меняются. Переподключите аккаунт |
| HTTP502 | КодRECOVERY_FAILED |
ОписаниеПеревыпуск ключа разработчика не удался, состояние временное — повторите запрос |
| HTTP502 | КодDEVKEY_SCOPE_SYNC_FAILED |
ОписаниеБитрикс24 не принял новые права вебхука ключа. Диагностика — в error.details. Права ключа не меняются |
| HTTP502 | КодBITRIX_UNAVAILABLE |
ОписаниеНе удалось передать в Битрикс24 смену статуса ключа |
| HTTP401 | КодWRONG_KEY_TYPE |
ОписаниеЗапрос отправлен ключом портала — личным vibe_api_ или ключом авторизации vibe_app_. Эндпоинт принимает только менеджмент-ключ |
| HTTP401 | КодKEY_INACTIVE |
ОписаниеМенеджмент-ключ отозван или заблокирован |
| HTTP401 | КодKEY_EXPIRED |
ОписаниеСрок действия менеджмент-ключа закончился |
| HTTP401 | КодINVALID_API_KEY |
ОписаниеКлюч с переданным значением не найден |
| HTTP401 | КодMISSING_API_KEY |
ОписаниеНе передан заголовок X-Api-Key |
Отказы OWNER_DELETED, OWNER_BLOCKED и ACCOUNT_PENDING_ERASURE зависят от аккаунта владельца ключа — см. Состояние аккаунта владельца.
Полный список общих ошибок API — Ошибки.
Известные особенности
Режим доступа меняется полем mode. Поле accessMode из ответа в теле запроса не принимается: запрос с ним отвечает 200, режим ключа не меняется.
Значение, равное текущему, изменением не считается. Клиент может прислать запись ключа целиком ради переименования: тот же mode, тот же rateLimit и тот же набор scopes проходят без проверок, которые срабатывают на смену этих полей.
Права и статус меняются и в Битрикс24. Если права ключа проверяются на стороне Битрикс24, новый набор сначала передаётся на вебхук ключа и только после этого сохраняется в Вайбкод. При отказе портала ключ остаётся с прежними правами. При отзыве платформа удаляет вебхук ключа в Битрикс24 либо отключает его учётные данные.
Отзыв гасит выписанные ключом токены доступа. Вместе с переводом в REVOKED отзываются токены доступа к серверам, выписанные этим ключом.
Ключи, выданные платформой, проверяются только на возврате в работу и продлении. Сужение срока, отзыв и правка остальных полей таких ключей работают без проверок выдачи. Обычных ключей кабинета эти проверки не касаются.
Режим ключей Cowork/Code живёт на месте. Место — пара сотрудника и портала, общая для всех его устройств. Поэтому mode ключа настольного приложения здесь не меняется, а у ключа стороннего агента на подписке ограничен режимом места.