> 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/get-note-users.md).

# Get Note Users

List the distinct users who have authored notes. Filter by case, evidence item, or linked object to see who has written notes in a particular scope — for example, to build an author picker or an activity report.

```http
GET /v1/notes/note-users
```

## Query parameters

All optional. With no filters, every user who has authored any note is returned.

| Parameter       | Type   | Description                                                                                                              |
| --------------- | ------ | ------------------------------------------------------------------------------------------------------------------------ |
| `case_uuid`     | string | Authors of notes in this case.                                                                                           |
| `evidence_uuid` | string | Authors of notes linked to this evidence item.                                                                           |
| `object_id`     | string | Authors of notes linked to this object (see [object-links.md](broken://pages/51b727a8e9ed397ceaddf1a990fc9bd8efefa705)). |

## Response — `200 OK`

```json
{
  "data": [
    {
      "user_id": 7,
      "email": "examiner@example.com",
      "first_name": "Alex",
      "last_name": "Rivera",
      "full_name": "Alex Rivera",
      "title": "Forensic Examiner"
    },
    {
      "user_id": 12,
      "email": "api-user@example.com",
      "first_name": "API",
      "last_name": "User",
      "full_name": "API User",
      "title": null
    }
  ]
}
```

## Examples

### Who has written notes in a case?

```python
response = session.get(f"{BASE_URL}/notes/note-users", params={
    "case_uuid": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
})
for user in response.json()["data"]:
    print(f"{user['full_name']} <{user['email']}>")
```

### Per-author note counts for a case

```python
case_uuid = "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"

authors = session.get(f"{BASE_URL}/notes/note-users",
                      params={"case_uuid": case_uuid}).json()["data"]

for user in authors:
    notes = session.get(f"{BASE_URL}/notes", params={
        "case_uuid": case_uuid,
        "created_by_id": user["user_id"],
    }).json()
    print(f"{user['full_name']}: {notes['total']} note(s)")
```

## Errors

| Status | Body                                                       | Cause                       |
| ------ | ---------------------------------------------------------- | --------------------------- |
| `400`  | `{"message": "Invalid query parameters", "errors": [...]}` | Empty-string filter value.  |
| `401`  | `Unauthorized`                                             | Missing or invalid API key. |
