> For the complete documentation index, see [llms.txt](https://docs.monolithforensics.com/monolith/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.monolithforensics.com/monolith/monolith-api/notes-api/delete-note.md).

# Delete Note

Delete a note by UUID. Deleting a folder also deletes every note and subfolder inside it, and all version history for the deleted notes is removed.

{% hint style="danger" %}
**This cannot be undone.**
{% endhint %}

```http
DELETE /v1/notes/{uuid}
```

## Path parameters

| Parameter | Description                           |
| --------- | ------------------------------------- |
| `uuid`    | UUID of the note or folder to delete. |

## Response — `200 OK`

Returns the deleted note (as it existed before deletion) plus the UUIDs of every note that was removed — for a folder, that includes all of its descendants:

```json
{
  "data": {
    "case_note_id": 87,
    "uuid": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "note_tag": "Triage",
    "path": "/Triage",
    "parent_id": null,
    "is_folder": true,
    "created_on": "2026-07-28T10:00:00.000Z",
    "updated_on": "2026-08-01T11:30:00.000Z",
    "attachments": [],
    "linked_case": { "case_id": 42, "uuid": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d" },
    "linked_object": null,
    "created_by": { "user_id": 7, "email": "examiner@example.com", "first_name": "Alex", "last_name": "Rivera", "full_name": "Alex Rivera", "title": "Forensic Examiner" },
    "updated_by": null
  },
  "deleted_uuids": [
    "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "0f8fad5b-d9cb-469f-a165-70867728950e",
    "3d1f2c44-9b0a-4f7e-8c53-6a1e9d20b471"
  ]
}
```

`deleted_uuids` always includes the target itself. For a regular note it is a single-element array.

## Examples

{% stepper %}
{% step %}

### Delete a single note

```python
response = session.delete(f"{BASE_URL}/notes/0f8fad5b-d9cb-469f-a165-70867728950e")
response.raise_for_status()
print(f"Deleted {len(response.json()['deleted_uuids'])} note(s)")
```

{% endstep %}

{% step %}

### Delete a folder, with a guard against surprises

```python
# Check what's inside before deleting a folder
folder_uuid = "7c9e6679-7425-40de-944b-e07fc1f90ae7"

tree = session.get(f"{BASE_URL}/notes", params={
    "case_uuid": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
    "tree": "true",
}).json()["data"]

def count_descendants(nodes, target):
    for node in nodes:
        if node["uuid"] == target:
            def count(n):
                return 1 + sum(count(c) for c in n.get("children", []))
            return count(node) - 1
        found = count_descendants(node.get("children", []), target)
        if found is not None:
            return found
    return None

n = count_descendants(tree, folder_uuid)
if n and n > 0:
    print(f"Folder contains {n} notes — deleting all of them.")

result = session.delete(f"{BASE_URL}/notes/{folder_uuid}").json()
print("Removed:", result["deleted_uuids"])
```

{% endstep %}
{% endstepper %}

## Errors

| Status | Body                            | Cause                       |
| ------ | ------------------------------- | --------------------------- |
| `404`  | `{"message": "Note not found"}` | No note with that UUID.     |
| `401`  | `Unauthorized`                  | Missing or invalid API key. |
