For AI agents: markdown of this page — /docs-content-en/apps/get.md documentation index — /llms.txt
Application data
GET /v1/apps/:id
Returns a single Bitrix24 account application by identifier.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id (path) |
string | Yes | Application identifier. List: GET /v1/apps |
Examples
curl — personal key
curl https://vibecode.bitrix24.com/v1/apps/YOUR_APP_ID \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl https://vibecode.bitrix24.com/v1/apps/YOUR_APP_ID \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — personal key
const res = await fetch('https://vibecode.bitrix24.com/v1/apps/YOUR_APP_ID', {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { data } = await res.json()
console.log('Application:', data)
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/apps/YOUR_APP_ID', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
success |
boolean | Always true on success |
data.id |
string | Application identifier |
data.title |
string | Name |
data.description |
string | null | Description |
data.scopes |
string[] | Bitrix24 scopes assigned to the application key |
data.handlerUrl |
string | Handler address on the platform side. Details — Applications |
data.appUrl |
string | null | Application address on Black Hole. Before publishing — null |
data.redirectUris |
string[] | Allowed OAuth return addresses |
data.bitrixClientId |
string | null | OAuth client identifier in the Bitrix24 account |
data.prefix |
string | Application key prefix |
data.suffix |
string | Last characters of the application key |
data.authorId |
string | Application author identifier |
data.authorBitrixUserId |
integer | null | Bitrix24 employee id of whoever created the app — the same identifier id carries in GET /v1/users. null when the id is unknown |
data.authorBitrixUserIdSource |
string | null | Where the id came from: member — the author's confirmed membership of the account, snapshot — a value captured when the app was created, null — no id |
data.portalId |
string | Bitrix24 portal identifier |
data.createdAt |
string | Creation date, ISO 8601 |
data.updatedAt |
string | Modification date, ISO 8601 |
data.placements |
string[] | Bound placements. Before publishing — empty array |
data.catalogStatus |
string | Catalog status: PRIVATE / PUBLISHED / UNPUBLISHED. The reliable publication signal |
data.publishedAt |
string | null | Publication date, ISO 8601. null if the application was never published |
data.placementResizeEnabled |
boolean | Whether the placement iframe height is fitted to the application content. Defaults to false. How to enable it — PATCH /v1/apps/:id |
data.mobile |
boolean | The "Supports BitrixMobile" flag sent to the Bitrix24 account at registration. For applications created before the field existed — false. Set only at creation — Create an application |
Response example
{
"success": true,
"data": {
"id": "33c4d5e6-f7a8-49b0-1234-5c6d7e8f9012",
"title": "Sales dashboard",
"description": "Deal analytics in the CRM card",
"scopes": ["crm", "user", "placement"],
"handlerUrl": "https://vibecode.bitrix24.com/v1/bitrix-handler",
"appUrl": "https://app-abc12345.vibecode.bitrix24.com",
"redirectUris": [
"https://vibecode.bitrix24.com/oauth/complete",
"http://localhost"
],
"bitrixClientId": "local.7c3d4e5f6a7b80.55556666",
"prefix": "vibe_app_local_7c3",
"suffix": "6666",
"authorId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"authorBitrixUserId": 42,
"authorBitrixUserIdSource": "member",
"portalId": "8b1f0e2a-3c4d-5e6f-7a8b-9c0d1e2f3a4b",
"createdAt": "2026-06-24T09:12:45.781Z",
"updatedAt": "2026-06-24T09:12:45.781Z",
"placements": [],
"catalogStatus": "PRIVATE",
"publishedAt": null,
"placementResizeEnabled": false,
"mobile": false
}
}
Error response example
404 — application not found:
{
"success": false,
"error": {
"code": "APP_NOT_FOUND",
"message": "Application not found"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| 404 | APP_NOT_FOUND |
An application with the given id does not belong to the key's portal or does not exist |
| 401 | MISSING_API_KEY |
The X-Api-Key header was not passed |
Full list of common API errors — Errors.
Known specifics
- A deleted application returns
404 APP_NOT_FOUND— the same code as a never-existing identifier. The response cannot distinguish "deleted" from "never existed". - The
authorBitrixUserIdfield is the Bitrix24 employee id of whoever created the app, and the same identifier theidfield of GET /v1/users returns. An employee card link is built ashttps://<account-domain>/company/personal/user/<authorBitrixUserId>/. TheauthorIdfield stays a Vibecode platform user identifier and never goes into such a link. - This response does not return the author's name. Fetch it by
authorBitrixUserIdthrough GET /v1/users, where theuserpermission gates access to it. - Read
authorBitrixUserIdSourcebefore you build a link. Onmemberthe id comes from the author's confirmed membership of the account and the link points at them. Onsnapshotthe id comes from a value captured when the app was created: that is best-effort, and on an app whose owner has changed the id may point at a different employee. A registry that must not be wrong should link only onmember. - Both fields are empty together:
authorBitrixUserIdSource: nullalways comes withauthorBitrixUserId: null. An empty id is a normal state, not an error — for some apps the author's id is unknown. - On self-hosted accounts and on accounts with microservice credentials the
snapshotvalue is never returned: there the captured value has no identity-confirmed origin, so the id is eithermemberor empty. - The
membervalue does not promise the employee still works at the company: the link may lead to a disabled or deleted Bitrix24 profile.