For AI agents: markdown of this page — /docs-content-en/apps/delete.md documentation index — /llms.txt
Delete an application
DELETE /v1/apps/:id
Deletes the application and revokes the paired API key. This is a soft delete: the application is hidden from the list, the catalog, and the Bitrix24 account handler; it cannot be restored via the API — create a new one if needed.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id (path) |
string | yes | Application identifier from create or list |
No request body is required — an empty body is allowed.
Examples
curl — personal key
curl -X DELETE https://vibecode.bitrix24.com/v1/apps/APP_ID \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl -X DELETE https://vibecode.bitrix24.com/v1/apps/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/APP_ID', {
method: 'DELETE',
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
if (res.status === 204) {
console.log('Deleted')
}
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/apps/APP_ID', {
method: 'DELETE',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
Response
On successful deletion, the API returns HTTP status 204 No Content with an empty body. The success indicator is the response code, not the content.
Response example
204 No Content (no body)
Error response example
409 — the paired key still owns active servers:
{
"success": false,
"error": {
"code": "APP_HAS_ACTIVE_SERVERS",
"message": "App key has active servers — rebind them first",
"details": {
"activeServerCount": 1,
"userMessage": "This key manages 1 server. Rebind it to another key before deleting.",
"servers": [
{
"id": "5d2940da-a968-4794-a5c1-239e310bf05e",
"displayName": "Support bot",
"name": "support-bot",
"status": "ERROR",
"ownerName": "Emma Wilson"
}
]
}
}
}
ownerName is the name of the server owner. If the server has no owner, ownerName is null.
Errors
| HTTP | Code | Description |
|---|---|---|
| 403 | INFRA_FORBIDDEN_FOR_COWORK_KEY |
The call was made with a Cowork/Code key — such a key works with data only and cannot perform write operations. To issue a key that can, see Project key for deploy |
| 403 | UNAUTHORIZED |
The call was made with an authorization key vibe_app_… issued for a different application. Such a key deletes only its own application, even when both applications were created by the same author |
| 403 | UNAUTHORIZED |
The key does not belong to the author or owner of the application |
| 403 | WRITE_BLOCKED_READONLY_KEY |
The key does not change Bitrix24 data, and the app is not its own. An app counts as own when this same key created it, for Cowork seat keys — any key of the same seat, for an authorization key — its own app. An app created in the dashboard is never own for such a key |
| 403 | WRITE_BLOCKED_READONLY_KEY |
The key does not change Bitrix24 data, and the app could change Bitrix24 data: it has had a key allowed to write to Bitrix24 at least once. Removing such an app takes everything it created off the Bitrix24 account. The refusal also comes when the app's placements include one in an employee work screen, the placements are bound to a handler other than the platform handler, or the placement list could not be read from Bitrix24 |
| 404 | APP_NOT_FOUND |
No application with the specified id. Repeated deletion of the same id also returns this code |
| 409 | APP_HAS_ACTIVE_SERVERS |
The paired key still owns active servers — rebind them to another key first. details carries activeServerCount, userMessage, servers |
Full list of common API errors — Errors.
Known specifics
- Repeated deletion is idempotent. A second
DELETEof the sameidreturns404 APP_NOT_FOUND— the application is already hidden by the soft delete. This is a normal response, not a failure: repeating the call is safe.