For AI agents: markdown of this page — /docs-content-en/timeline-logs/notes/delete.md documentation index — /llms.txt
Delete note
DELETE /v1/timeline-logs/:id/note
Deletes the note attached to a timeline item. Parameters are passed in the query string, not in the request body.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
Parameterid (path) |
Typenumber | Requiredyes | Default— | DescriptionTimeline item ID. Log entries: GET /v1/timeline-logs, activities when itemType is 2: GET /v1/activities |
ParameterentityTypeId (query) |
Typenumber | Requiredyes | Default— | DescriptionType of the parent CRM entity. See Entity types |
ParameterentityId (query) |
Typenumber | Requiredyes | Default— | DescriptionID of the parent record. For where to get the ID for each type, see Entity types |
ParameteritemType (query) |
Typenumber | Requiredno | Default1 |
Description1 — history entry, 2 — activity |
Examples
curl — personal key
curl -X DELETE "https://vibecode.bitrix24.com/v1/timeline-logs/5012/note?entityTypeId=2&entityId=100" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth application
curl -X DELETE "https://vibecode.bitrix24.com/v1/timeline-logs/5012/note?entityTypeId=2&entityId=100" \
-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/note?entityTypeId=2&entityId=100',
{
method: 'DELETE',
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
},
)
const { success, data } = await res.json()
if (success) console.log('Note deleted')
JavaScript — OAuth application
const res = await fetch(
'https://vibecode.bitrix24.com/v1/timeline-logs/5012/note?entityTypeId=2&entityId=100',
{
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 | DescriptionAlways true on success |
Fielddata.deleted |
Typeboolean | DescriptionAlways true — operation confirmation |
Response example
HTTP 200:
{
"success": true,
"data": { "deleted": true }
}
Error response example
400 — parameters passed in the body instead of the query:
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Required query: entityTypeId, entityId (positive ints). Optional: itemType (default 1)"
}
}
Errors
| HTTP | Code | Description |
|---|---|---|
| HTTP400 | CodeINVALID_PARAMS |
DescriptionParameters are missing, passed incorrectly, or a body was sent instead of the query |
| HTTP422 | CodeBITRIX_ERROR |
DescriptionBitrix24 rejected the request |
| 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
Do not confuse with DELETE /v1/timeline-logs/:id. That endpoint deletes the entire log entry and takes no parameters at all. This one deletes only the item's note and requires entityTypeId + entityId.
The response does not tell whether the note existed. Deleting an already-deleted note again, or deleting by a nonexistent id, also returns 200 and { "deleted": true }. To check whether a note exists, read it via GET /v1/timeline-logs/:id/note: it returns 404 when there is none.
Any key with the crm scope in read-write mode can delete a note, regardless of who created it. DELETE /v1/timeline-logs/:id works differently: only the OAuth key that created the log entry can delete it.