For AI agents: markdown of this page — /docs-content-en/management-keys/get.md documentation index — /llms.txt
Get an API key
GET /v1/keys/:id
Returns a single API key record that belongs to the management key's owner, by record ID. The key value is not returned.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
Parameterid (path) |
Typestring | Requiredyes | DescriptionKey record ID. List: GET /v1/keys |
Examples
This endpoint accepts only a management key — see Limitations.
curl — management key
curl "https://vibecode.bitrix24.com/v1/keys/6dbad0ce-79a9-43f5-8ca4-3e1af7ef63bc" \
-H "X-Api-Key: YOUR_MANAGEMENT_KEY"
JavaScript — management key
const res = await fetch('https://vibecode.bitrix24.com/v1/keys/6dbad0ce-79a9-43f5-8ca4-3e1af7ef63bc', {
headers: {
'X-Api-Key': 'YOUR_MANAGEMENT_KEY',
},
})
const { success, data } = await res.json()
console.log('Key:', data.name, '—', data.status)
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata.id |
Typestring | DescriptionKey record ID |
Fielddata.name |
Typestring | DescriptionKey name set at creation |
Fielddata.prefix |
Typestring | DescriptionFirst characters of the key value |
Fielddata.suffix |
Typestring | DescriptionLast four characters of the key value |
Fielddata.type |
Typestring | DescriptionKey record type, always APP |
Fielddata.userId |
Typestring | DescriptionKey owner ID |
Fielddata.portalId |
Typestring | DescriptionBitrix24 account ID |
Fielddata.clientId |
Typestring | null | DescriptionOAuth client ID, if recorded on the key. Otherwise null |
Fielddata.scopes |
Typearray | DescriptionKey scopes |
Fielddata.ipWhitelist |
Typearray | DescriptionAllowed IP addresses. An empty array means no restriction |
Fielddata.expiresAt |
Typestring | null | DescriptionExpiration date (ISO 8601), null — no expiration |
Fielddata.rateLimit |
Typenumber | null | DescriptionIndividual request limit for AI endpoints, null — the platform-wide limit |
Fielddata.status |
Typestring | DescriptionACTIVE, REVOKED, EXPIRED or BLOCKED |
Fielddata.lastUsedAt |
Typestring | null | DescriptionDate of the last request made with this key (ISO 8601) |
Fielddata.createdAt |
Typestring | DescriptionCreation date (ISO 8601) |
Fielddata.updatedAt |
Typestring | DescriptionDate of the last update (ISO 8601) |
Fielddata.accessMode |
Typestring | DescriptionREADWRITE or READONLY |
Fielddata.totalDefault |
Typeboolean | null | DescriptionWhether meta.total is returned in lists requested with this key. null — the platform setting applies |
Fielddata.issuedVia |
Typestring | null | DescriptionChannel through which the key's webhook was issued: per-portal and cloud-shared — the connector module on the Bitrix24 account, dev_key — the owner's developer key, legacy — registration through Bitrix24 Network, none — no webhook was created, the key has only vibe:* permissions. null if the channel is not recorded |
Fielddata.b24Ready |
Typeboolean | null | DescriptionWhether the key has working credentials for requests to Bitrix24. null for an application authorization key and for a key with only vibe:* scopes |
Response example
{
"success": true,
"data": {
"id": "6dbad0ce-79a9-43f5-8ca4-3e1af7ef63bc",
"name": "CRM integration",
"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
}
}
Error response example
404 — the key was not found:
{
"success": false,
"error": {
"code": "KEY_NOT_FOUND",
"message": "API key not found"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP404 | CodeKEY_NOT_FOUND |
DescriptionThere is no key with this id, it belongs to another user, or it is a management key |
| HTTP403 | CodeMANAGEMENT_SCOPE_REQUIRED |
DescriptionThe management key lacks the vibe:mgmt:keys scope |
| HTTP401 | CodeWRONG_KEY_TYPE |
DescriptionThe request was sent with a Bitrix24 account key — a personal vibe_api_ key or a vibe_app_ authorization key. The endpoint accepts only a management key |
| HTTP401 | CodeKEY_INACTIVE |
DescriptionThe management key has been revoked or blocked |
| HTTP401 | CodeKEY_EXPIRED |
DescriptionThe management key has expired |
| HTTP401 | CodeINVALID_API_KEY |
DescriptionNo key with the given value was found |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe X-Api-Key header was not sent |
The OWNER_DELETED, OWNER_BLOCKED and ACCOUNT_PENDING_ERASURE refusals depend on the key owner's account — see Owner account state.
The full list of common API errors — Errors.
Known specifics
Ownership is checked, not membership in the Bitrix24 account. A record of your own key is readable even when the owner's access to the key's account is disabled and GET /v1/keys with this portalId responds with 403 PORTAL_ACCESS_BLOCKED.
An inactive key is read the same way as an active one. The record of a revoked, expired or blocked key is returned with the current status value.