[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-apps\u002Fdelete":3,"docs-tabs-apps\u002Fdelete":6},{"content":4,"lastmod":5},"\n## Удалить приложение\n\n`DELETE \u002Fv1\u002Fapps\u002F:id`\n\nУдаляет приложение и отзывает парный API-ключ. Удаление мягкое: приложение скрывается из списка, каталога и обработчика портала, восстановить его через API нельзя — создавайте новое при необходимости.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `id` (path) | string | да | Идентификатор приложения из [создания](\u002Fdocs\u002Fapps\u002Fcreate) или [списка](\u002Fdocs\u002Fapps\u002Flist) |\n\nТело запроса не требуется — пустое тело допустимо.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X DELETE https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fapps\u002FAPP_ID \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X DELETE https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fapps\u002FAPP_ID \\\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('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fapps\u002FAPP_ID', {\n  method: 'DELETE',\n  headers: { 'X-Api-Key': 'YOUR_API_KEY' },\n})\nif (res.status === 204) {\n  console.log('Удалено')\n}\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fapps\u002FAPP_ID', {\n  method: 'DELETE',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n```\n\n## Ответ\n\nПри успешном удалении возвращается HTTP-статус `204 No Content` с пустым телом. Признак успеха — код ответа, не содержимое.\n\n## Пример ответа\n\n```\n204 No Content (без тела)\n```\n\n## Пример ответа при ошибке\n\n409 — у парного ключа есть активные серверы:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"APP_HAS_ACTIVE_SERVERS\",\n    \"message\": \"App key has active servers — rebind them first\",\n    \"details\": {\n      \"activeServerCount\": 2,\n      \"userMessage\": \"Перепривяжите серверы к другому ключу перед удалением приложения\",\n      \"servers\": [\n        { \"id\": \"srv-1\", \"name\": \"app-abc12345\" }\n      ]\n    }\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 403 | `UNAUTHORIZED` | Ключ не принадлежит автору или владельцу приложения |\n| 404 | `APP_NOT_FOUND` | Приложения с указанным `id` нет. Повторное удаление того же `id` тоже возвращает этот код |\n| 409 | `APP_HAS_ACTIVE_SERVERS` | У парного ключа есть активные серверы — сначала перепривяжите их к другому ключу. В `details` — `activeServerCount`, `userMessage`, `servers` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- **Повторное удаление идемпотентно.** Второй `DELETE` того же `id` возвращает `404 APP_NOT_FOUND` — приложение уже скрыто мягким удалением. Это штатный ответ, а не сбой: повторный вызов безопасен.\n\n## Смотрите также\n\n- [Приложения](\u002Fdocs\u002Fapps)\n- [Создать приложение](\u002Fdocs\u002Fapps\u002Fcreate)\n- [Данные приложения](\u002Fdocs\u002Fapps\u002Fget)\n- [Обновить приложение](\u002Fdocs\u002Fapps\u002Fupdate)\n","2026-06-24",{}]