[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-apps\u002Funpublish":3,"docs-tabs-apps\u002Funpublish":6},{"content":4,"lastmod":5},"\n## Снять с публикации\n\n`POST \u002Fv1\u002Fapps\u002F:id\u002Funpublish`\n\nПереводит опубликованное приложение в `UNPUBLISHED` и отвязывает места встраивания от портала.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `id` (path) | string | да | Идентификатор приложения в статусе `PUBLISHED`. Список: `GET \u002Fv1\u002Fapps` |\n\nТело запроса не требуется — пустое тело допустимо.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fapps\u002FYOUR_APP_ID\u002Funpublish\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fapps\u002FYOUR_APP_ID\u002Funpublish\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fapps\u002FYOUR_APP_ID\u002Funpublish',\n  {\n    method: 'POST',\n    headers: { 'X-Api-Key': 'YOUR_API_KEY' },\n  }\n)\nconst body = await res.json()\nif (!body.success) throw new Error(body.error.code)\nconsole.log(body.data.placements) \u002F\u002F []\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch(\n  'https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fapps\u002FYOUR_APP_ID\u002Funpublish',\n  {\n    method: 'POST',\n    headers: {\n      'X-Api-Key': 'YOUR_APP_KEY',\n      'Authorization': 'Bearer USER_SESSION_TOKEN',\n    },\n  }\n)\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|----------|\n| `success` | boolean | `true` при успешном снятии с публикации |\n| `data` | object | Приложение после снятия — те же 15 полей, что отдаёт [данные приложения](\u002Fdocs\u002Fapps\u002Fget) |\n| `data.placements` | string[] | Пустой массив — места встраивания отвязаны |\n\n## Пример ответа\n\nПоле `data` повторяет объект приложения с пустым массивом `placements`:\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"33c4d5e6-f7a8-49b0-1234-5c6d7e8f9012\",\n    \"title\": \"Дашборд продаж\",\n    \"description\": null,\n    \"scopes\": [\"crm\", \"user\", \"placement\"],\n    \"handlerUrl\": \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbitrix-handler\",\n    \"appUrl\": \"https:\u002F\u002Fapp-abc12345.vibecode.bitrix24.tech\",\n    \"redirectUris\": [\n      \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Foauth\u002Fcomplete\",\n      \"http:\u002F\u002Flocalhost\"\n    ],\n    \"bitrixClientId\": \"local.7c3d4e5f6a7b80.55556666\",\n    \"prefix\": \"vibe_app_local_7c3\",\n    \"suffix\": \"6666\",\n    \"authorId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n    \"portalId\": \"8b1f0e2a-3c4d-5e6f-7a8b-9c0d1e2f3a4b\",\n    \"createdAt\": \"2026-06-24T09:12:45.781Z\",\n    \"updatedAt\": \"2026-06-24T09:12:45.781Z\",\n    \"placements\": []\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n404 — приложение не опубликовано:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"NOT_FOUND\",\n    \"message\": \"Published app not found\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 404 | `NOT_FOUND` | Приложение не существует, принадлежит другому порталу или не находится в статусе `PUBLISHED` |\n| 403 | `FORBIDDEN` | Запрос не от автора приложения и не от администратора портала |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- **Возврат в `UNPUBLISHED`, а не в `PRIVATE`.** Метаданные каталога — название, описание, иконка — сохраняются, поэтому повторная [публикация](\u002Fdocs\u002Fapps\u002Fpublish) с пустым телом восстанавливает приложение без повторного заполнения.\n- **Отвязка мест встраивания не блокирует снятие.** Отвязка идёт без ожидания результата по каждому коду. Сбой отвязки отдельного места встраивания не прерывает операцию — приложение переходит в `UNPUBLISHED`, а `placements` становится пустым.\n\n## Смотрите также\n\n- [Приложения](\u002Fdocs\u002Fapps)\n- [Опубликовать](\u002Fdocs\u002Fapps\u002Fpublish)\n- [Данные приложения](\u002Fdocs\u002Fapps\u002Fget)\n- [Удалить приложение](\u002Fdocs\u002Fapps\u002Fdelete)\n","2026-07-07",{}]