For AI agents: markdown of this page — /docs-content-en/timeline-logs/logs/delete.md documentation index — /llms.txt
Delete an entry
DELETE /v1/timeline-logs/:id
Deletes a log entry from the timeline. Bitrix24 allows an entry to be deleted only by the same application that created it — otherwise it returns 403 CROSS_APP_DELETE_FORBIDDEN.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
Parameterid (path) |
Typenumber | Requiredyes | DescriptionLog entry ID. Get a list of IDs — GET /v1/timeline-logs |
When deletion works
| Creation key | Deletion key | Result |
|---|---|---|
Creation keyOAuth application vibe_app_* |
Deletion keythe same application | Result200, data.deleted: true |
Creation keyPersonal key vibe_api_* |
Deletion keyany key, including the same one | Result403 CROSS_APP_DELETE_FORBIDDEN |
| Creation keyAny key | Deletion keya different OAuth application | Result403 CROSS_APP_DELETE_FORBIDDEN |
| Creation keyDirect Bitrix24 webhook | Deletion keyany Vibecode key | Result403 CROSS_APP_DELETE_FORBIDDEN |
Personal keys (vibe_api_*) are not suitable for deletion because Vibecode rotates their OAuth tokens — to Bitrix24 each call looks like a separate application. If you plan to delete created entries via the API, use an OAuth application with Authorization: Bearer ....
Examples
curl — personal key
curl -X DELETE "https://vibecode.bitrix24.com/v1/timeline-logs/5012" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl -X DELETE "https://vibecode.bitrix24.com/v1/timeline-logs/5012" \
-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/timeline-logs/5012', {
method: 'DELETE',
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
const { success, data } = await res.json()
if (success) console.log('Deleted')
JavaScript — OAuth application
const res = await fetch('https://vibecode.bitrix24.com/v1/timeline-logs/5012', {
method: 'DELETE',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data } = await res.json()
Response fields
| Field | Type | Description |
|---|---|---|
Fieldsuccess |
Typeboolean | Descriptiontrue on successful deletion |
Fielddata |
Typeobject | DescriptionDeletion result |
Fielddata.deleted |
Typeboolean | DescriptionAlways true on success — confirmation of the operation |
Response example
{
"success": true,
"data": { "deleted": true }
}
Error response example
403 — the entry was created by a different application:
{
"success": false,
"error": {
"code": "CROSS_APP_DELETE_FORBIDDEN",
"message": "Personal webhook keys cannot delete timeline messages. Only the OAuth app that created this message can delete it."
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeINVALID_PARAMS |
Descriptionid is not a positive integer |
| HTTP403 | CodeCROSS_APP_DELETE_FORBIDDEN |
DescriptionThe entry was created by a different application, or the delete request was sent with a personal key |
| HTTP404 | CodeENTITY_NOT_FOUND |
DescriptionThe log entry with the given id does not exist |
| HTTP403 | CodeSCOPE_DENIED |
DescriptionThe API key does not have the crm scope |
| HTTP403 | CodeWRITE_BLOCKED_READONLY_KEY |
DescriptionThe key is read-only — see access rights |
| HTTP401 | CodeTOKEN_MISSING |
DescriptionThe API key has no configured tokens |
Full list of common API errors — Errors.
Known specifics
If an entry cannot be deleted via the API, it cannot be deleted at all. Bitrix24 does not provide a UI delete button for log entries in the entity card (unlike user timeline comments and activities). If the ability to delete is critical for your scenario, create entries with the same OAuth application you plan to delete them with.
Deleted from all bound timelines at once. If the entry was bound to several entities via POST /:id/bind, DELETE removes it from the timelines of the deal, contact, company, and so on simultaneously. To remove it from a single timeline only, use POST /:id/unbind (but not for the last binding — see its documentation).
Deletion is irreversible. A deleted log entry cannot be restored via the API — create a new one if needed. A note attached to this entry is deleted together with it.