Для AI-агентов: markdown этой страницы — /docs-content/management-keys/list.md индекс документации — /llms.txt
Список API-ключей портала
GET /v1/keys
Возвращает API-ключи владельца менеджмент-ключа на указанном портале: личные ключи и ключи авторизации приложений.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
ПараметрportalId (query) |
Типstring | Обяз.да | ОписаниеИдентификатор портала. Список: GET /v1/portals. Владелец менеджмент-ключа должен состоять в этом портале |
Пагинации нет: в ответе все ключи владельца на портале, новые первыми.
Примеры
Запрос принимает только менеджмент-ключ — см. Ограничения.
curl — менеджмент-ключ
curl "https://vibecode.bitrix24.tech/v1/keys?portalId=0d9f7744-f853-47c7-b06e-6f61f9dd1b7f" \
-H "X-Api-Key: YOUR_MANAGEMENT_KEY"
JavaScript — менеджмент-ключ
const portalId = '0d9f7744-f853-47c7-b06e-6f61f9dd1b7f'
const res = await fetch(`https://vibecode.bitrix24.tech/v1/keys?portalId=${portalId}`, {
headers: {
'X-Api-Key': 'YOUR_MANAGEMENT_KEY',
},
})
const { success, data } = await res.json()
const activeKeys = data.filter((key) => key.status === 'ACTIVE')
console.log('Активных ключей:', activeKeys.length)
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
Полеsuccess |
Типboolean | ОписаниеВсегда true при успехе |
Полеdata |
Типarray | ОписаниеМассив ключей |
Полеdata[].id |
Типstring | ОписаниеИдентификатор записи ключа. Его принимают GET /v1/keys/:id и эндпоинты, которым нужен ключ как ресурс, — например targetApiKeyId в переносе владения ботом |
Поле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 — вебхук не заводился, у ключа только права vibe:*. null, если канал не записан |
Полеdata[].b24Ready |
Типboolean | null | ОписаниеЕсть ли у ключа рабочие учётные данные для запросов к Битрикс24. null у ключа авторизации приложения и у ключа только со скоупами vibe:* |
Пример ответа
{
"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", "im", "vibe:ai", "vibe:search", "vibe:storage"],
"ipWhitelist": [],
"expiresAt": null,
"rateLimit": null,
"status": "ACTIVE",
"lastUsedAt": "2026-10-23T10:01:53.371Z",
"createdAt": "2026-10-14T07:07:00.732Z",
"updatedAt": "2026-10-23T10:01:53.371Z",
"accessMode": "READWRITE",
"totalDefault": null,
"issuedVia": "cloud-shared",
"b24Ready": true
},
{
"id": "ef0b2172-aa01-445c-815c-f8ce82559d5e",
"name": "Ключ авторизации приложения",
"prefix": "vibe_app_XXXXXXXXX",
"suffix": "XXXX",
"type": "APP",
"userId": "fafa9780-eed7-4d29-b040-2448d924f452",
"portalId": "0d9f7744-f853-47c7-b06e-6f61f9dd1b7f",
"clientId": null,
"scopes": ["crm", "vibe:infra", "vibe:ai", "vibe:search", "vibe:storage"],
"ipWhitelist": [],
"expiresAt": null,
"rateLimit": null,
"status": "REVOKED",
"lastUsedAt": null,
"createdAt": "2026-08-27T06:36:58.910Z",
"updatedAt": "2026-08-27T06:37:01.459Z",
"accessMode": "READWRITE",
"totalDefault": null,
"issuedVia": null,
"b24Ready": null
}
]
}
Пример ответа при ошибке
400 — не передан portalId:
{
"success": false,
"error": {
"code": "MISSING_PORTAL_ID",
"message": "Query parameter portalId is required"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| HTTP400 | КодMISSING_PORTAL_ID |
ОписаниеНе передан параметр portalId |
| HTTP403 | КодNOT_PORTAL_MEMBER |
ОписаниеВладелец менеджмент-ключа не состоит в портале с указанным portalId |
| HTTP403 | КодPORTAL_ACCESS_BLOCKED |
ОписаниеДоступ владельца к порталу отключён: его участие в портале неактивно или запрещено политикой доступа портала |
| HTTP403 | КодMANAGEMENT_SCOPE_REQUIRED |
ОписаниеУ менеджмент-ключа нет скоупа vibe:mgmt:keys |
| 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 — Ошибки.
Известные особенности
Неактивные ключи в списке. Ответ включает отозванные, истёкшие и заблокированные ключи. Рабочие ключи — элементы со status: "ACTIVE".
Значение ключа не возвращается. Поля prefix и suffix запрос не авторизуют: по ним узнают свой ключ в списке. Значение ключа приходит один раз — в ответе создания или перевыпуска.