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 |
|---|---|---|---|
Parameterid (path) |
Typestring | RequiredYes | DescriptionApplication 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 |
|---|---|---|
Fieldsuccess |
Typeboolean | DescriptionAlways true on success |
Fielddata.id |
Typestring | DescriptionApplication identifier |
Fielddata.title |
Typestring | DescriptionName |
Fielddata.description |
Typestring | null | DescriptionDescription |
Fielddata.scopes |
Typestring[] | DescriptionBitrix24 scopes assigned to the application key |
Fielddata.handlerUrl |
Typestring | DescriptionHandler address on the platform side. Details — Applications |
Fielddata.appUrl |
Typestring | null | DescriptionApplication address on Black Hole. Before publishing — null |
Fielddata.redirectUris |
Typestring[] | DescriptionAllowed OAuth return addresses |
Fielddata.bitrixClientId |
Typestring | null | DescriptionOAuth client identifier in the Bitrix24 account |
Fielddata.prefix |
Typestring | DescriptionApplication key prefix |
Fielddata.suffix |
Typestring | DescriptionLast characters of the application key |
Fielddata.authorId |
Typestring | DescriptionApplication author identifier |
Fielddata.authorBitrixUserId |
Typeinteger | null | DescriptionBitrix24 employee id of whoever created the app — the same identifier id carries in GET /v1/users. null when the id is unknown |
Fielddata.authorBitrixUserIdSource |
Typestring | null | DescriptionWhere 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 |
Fielddata.portalId |
Typestring | DescriptionBitrix24 portal identifier |
Fielddata.createdAt |
Typestring | DescriptionCreation date, ISO 8601 |
Fielddata.updatedAt |
Typestring | DescriptionModification date, ISO 8601 |
Fielddata.placements |
Typestring[] | DescriptionBound placements. Before publishing — empty array |
Fielddata.catalogStatus |
Typestring | DescriptionCatalog status: PRIVATE / PUBLISHED / UNPUBLISHED. The reliable publication signal |
Fielddata.publishedAt |
Typestring | null | DescriptionPublication date, ISO 8601. null if the application was never published |
Fielddata.placementResizeEnabled |
Typeboolean | DescriptionWhether the placement iframe height is fitted to the application content. Defaults to false. How to enable it — PATCH /v1/apps/:id |
Fielddata.mobile |
Typeboolean | DescriptionThe "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 |
Fielddata.hosting |
Typestring | DescriptionWhere the app runs: platform — on a platform server linked to the app or owned by this Bitrix24 account, or on that server's verified own domain, or the app has no address at all, platform-orphan — an address on a platform subdomain with no live server behind it, external — any other address, including a platform server of another Bitrix24 account. Computed on every read |
Fielddata.externalHost |
Typestring | null | DescriptionHost name from appUrl (punycode) for external, otherwise null. An external row can also carry null when the address has no host: the string does not parse as a URL or its scheme has no host |
Fielddata.externalRegistrable |
Typestring | null | DescriptionRegistrable domain of the host by the public suffix list, private suffixes included: example.co.uk for shop.example.co.uk, the whole address for an IP address. null whenever externalHost is null |
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,
"hosting": "platform",
"externalHost": null,
"externalRegistrable": null
}
}
Error response example
404 — application not found:
{
"success": false,
"error": {
"code": "APP_NOT_FOUND",
"message": "Application not found"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP404 | CodeAPP_NOT_FOUND |
DescriptionAn application with the given id does not belong to the key's portal or does not exist |
| HTTP401 | CodeMISSING_API_KEY |
DescriptionThe 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.