Для AI-агентов: markdown этой страницы — /docs-content/apps/update.md индекс документации — /llms.txt
Обновить приложение
PATCH /v1/apps/:id
Изменяет свойства приложения. Передавайте только те поля, которые нужно изменить.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
id (path) |
string | да | Идентификатор приложения из создания или списка |
Поля запроса (body)
| Поле | Тип | Описание |
|---|---|---|
title |
string | Название, от 1 до 255 символов. У приложения в каталоге предел — 100 символов |
description |
string | null | Описание, до 2000 символов |
appUrl |
string | Адрес приложения, только http:// или https://. Пустая строка сохраняется как null |
scopes |
array | Набор скоупов приложения, минимум один. Изменение платформенных скоупов vibe:* переносится в активные ключи приложения — см. «Известные особенности» |
redirectUris |
array | Адреса перенаправления для OAuth |
placements |
array | Места встраивания. Список кодов — Доступные места. Привязать или снять место по одному, не публикуя приложение заново, — Места встраивания |
placementResizeEnabled |
boolean | Подстраивать высоту iframe встройки под контент приложения. Значение по умолчанию — false. Перед включением разрешите источник платформы в своей директиве frame-ancestors — условие описано в разделе Приложение в Битрикс24 |
handlerUrl менять нельзя — поле в теле приводит к 400 HANDLER_URL_READONLY.
Примеры
curl — личный ключ
curl -X PATCH https://vibecode.bitrix24.tech/v1/apps/APP_ID \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "appUrl": "https://app-abc12345.vibecode.bitrix24.tech/dashboard" }'
curl — OAuth-приложение
curl -X PATCH https://vibecode.bitrix24.tech/v1/apps/APP_ID \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "appUrl": "https://app-abc12345.vibecode.bitrix24.tech/dashboard" }'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/apps/APP_ID', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
appUrl: 'https://app-abc12345.vibecode.bitrix24.tech/dashboard',
}),
})
const { data } = await res.json()
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/apps/APP_ID', {
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
appUrl: 'https://app-abc12345.vibecode.bitrix24.tech/dashboard',
}),
})
const { data } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data |
object | Приложение после обновления. Набор полей совпадает с ответом создания, без rawKey |
data.updatedAt |
string | Дата изменения, ISO 8601 |
warnings |
array | Появляется при частичной синхронизации мест встраивания: коды, которые не удалось привязать |
Пример ответа
{
"success": true,
"data": {
"id": "33c4d5e6-f7a8-49b0-1234-5c6d7e8f9012",
"title": "Дашборд продаж",
"description": "Обновлено",
"scopes": ["crm", "user", "placement"],
"handlerUrl": "https://vibecode.bitrix24.tech/v1/bitrix-handler",
"appUrl": "https://app-abc12345.vibecode.bitrix24.tech/dashboard",
"redirectUris": [
"https://vibecode.bitrix24.tech/oauth/complete",
"http://localhost"
],
"bitrixClientId": "local.7c3d4e5f6a7b80.55556666",
"prefix": "vibe_app_local_7c3",
"suffix": "6666",
"authorId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"portalId": "8b1f0e2a-3c4d-5e6f-7a8b-9c0d1e2f3a4b",
"createdAt": "2026-06-24T09:12:45.781Z",
"updatedAt": "2026-06-24T09:13:36.974Z",
"placements": []
}
}
Пример ответа при ошибке
404 — приложение не найдено:
{
"success": false,
"error": {
"code": "APP_NOT_FOUND",
"message": "Application not found"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | HANDLER_URL_READONLY |
В теле передан handlerUrl — поле задаёт платформа и менять его нельзя |
| 400 | NO_USER_TOKEN |
Смена placements или переименование опубликованного приложения без токена пользователя на облачном портале |
| 400 | TITLE_TOO_LONG_FOR_CATALOG |
Новое название длиннее 100 символов у приложения, добавленного в каталог |
| 403 | UNAUTHORIZED |
Ключ не принадлежит автору или владельцу приложения |
| 403 | WRITE_BLOCKED_READONLY_KEY |
Запрос меняет scopes, а идёт ключом в режиме «только чтение». Остальные поля такой ключ менять может. Подробнее — Режим доступа |
| 403 | SCOPE_GRANT_REQUIRES_CONSENT |
Запрос идёт ключом с зафиксированным при выдаче набором прав — партнёрским или проектным ключом Cowork — и добавляет в scopes платформенный скоуп vibe:*, которого у самого вызывающего ключа нет. Список таких скоупов приходит в error.details.unconsented. Снятие скоупов проходит всегда, а добавление — только в пределах прав, подтверждённых партнёрскому ключу на странице согласия. Личного ключа и ключа авторизации из кабинета эта проверка не касается |
| 404 | APP_NOT_FOUND |
Приложения с указанным id нет |
| 502 | BITRIX_PARTIAL_REBIND |
Битрикс24 отклонил перепривязку места встраивания при переименовании. Новое название не записано — повторите запрос |
Полный список общих ошибок API — Ошибки.
Известные особенности
- Переименование приложения в каталоге меняет и подписи на портале. Новое
titleуходит в карточку каталога (полеcatalogTitleпишется вместе сtitle) и в места встраивания — пункт левого меню и вкладки CRM. Поэтому переименование обращается к Битрикс24 и может вернуть400 NO_USER_TOKENили502 BITRIX_PARTIAL_REBIND. При отказе название не записывается, повтор запроса чинит состояние. Портал кэширует левое меню — новое имя видно после перезагрузки страницы с очисткой кэша. У приложения вне каталога переименование меняет толькоtitle. - Смена
scopesпереносит платформенные скоупыvibe:*в ключи приложения. Обновление сравнивает старый и новый набор и применяет разницу поvibe:*ко всем активным ключам приложения — добавленныйvibe:aiпоявляется у ключей, снятыйvibe:infraу них снимается. Скоупы портала Битрикс24 (crm,userи прочие) в ключи не переносятся: их набор фиксируется при выпуске ключа и меняется только перевыпуском. - Расхождение между скоупами приложения и его ключа чинится двумя запросами. У приложения, созданного до появления переноса, в
scopesможет стоятьvibe:infra, которого у ключа нет — ключ отвечает403на создание сервера. Снимитеvibe:infraизscopesпервым запросом и верните вторым: перенос применяет именно разницу, поэтому вторая правка добавляет скоуп в ключ. Итоговый набор ключа показываетGET /v1/meв полеdata.scopes, вызванный этим ключом. - Смена
placementsу опубликованного приложения запускает синхронизацию мест встраивания на портале. Привязка и отвязка проходят прямо на портале Битрикс24, и часть кодов может не привязаться — тогда ответ несётwarningsсо списком таких кодов. На облачном портале без токена пользователя синхронизация невозможна, запрос возвращает400 NO_USER_TOKEN. У приложения в статусеPRIVATEplacementsпишутся в базу без обращения к порталу. - Правка
appUrlдоезжает до карточки приложения в каталоге Битрикс24 сама. Карточка ставится в очередь на обновление этим же запросом, отдельного вызова не нужно. Открывается она по полному адресу приложения вместе с подпутём, параметрами запроса и якорем, когда адрес указывает на тот же поддомен Black Hole, что и сервер карточки. В остальных случаях карточка открывает корень сервера — в том числе при другом поддомене, своём домене, другой схеме, пустом или неразбираемом адресе, имени пользователя перед хостом и адресе длиннее 512 символов, куда засчитываются и параметры запроса. Отдельно от карточки действует ограничение шлюза: на первом заходе за сессию посетитель приземляется в корень поддомена независимо от адреса карточки — Деплой приложения. - Кириллица в
titleиз Windows PowerShell. Отправленная без явной сериализации в UTF-8, она сохраняется знаками вопроса (?): байты теряются на стороне клиента, до отправки запроса. Готовый вызов сUTF8.GetBytes— Windows / PowerShell и UTF-8.