> ## Documentation Index
> Fetch the complete documentation index at: https://docs.go.aiinsurance.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

The Notes API lets you attach simple text records to a top-level Field Model V1 entity (such as an event, exposure, quote, submission, person, organization, or policy). A note is just a body of text scoped to its parent entity.

**Key Concepts:**

* **Parent entity**: Every note belongs to a parent entity, identified by `entityType` (a lowercase kebab-case wire slug — one of `event`, `exposure`, `quote`, `submission`, `person`, `organization`, `policy`) and `entityId`. The `entityType` is supplied as a query parameter on every endpoint. PascalCase like `Event` is rejected with a `400`.
* **Body**: The `note` body is a free-text string and must not be empty. It is the only field you can update.
* **Listing**: List returns a parent entity's notes newest first. Select the parent with the `entityType` and `entityId` query parameters, and pass `search` to filter to notes whose body contains a substring (case-insensitive).
* **Audit fields**: Responses include `createdAt`/`createdBy` and `updatedAt`/`updatedBy`, plus a resolved `createdByName` for display.
* **Soft delete**: `DELETE` soft deletes the note; it no longer appears in list or get responses.

***

## API Endpoints

The five Notes endpoints are listed in the left navigation:

* **List Notes** (`GET /notes`) - Paginated list of a parent entity's notes, newest first
* **Create Note** (`POST /notes`) - Create a note on a parent entity
* **Get Note** (`GET /notes/{noteId}`) - Retrieve a note by ID
* **Update Note** (`PATCH /notes/{noteId}`, `PUT` alias) - Update the note body
* **Delete Note** (`DELETE /notes/{noteId}`) - Soft delete a note

***

## Permissions

| Operation   | Method                                | Required Permission   |
| ----------- | ------------------------------------- | --------------------- |
| List Notes  | `GET /notes`                          | `company.note:read`   |
| Get Note    | `GET /notes/{noteId}`                 | `company.note:read`   |
| Create Note | `POST /notes`                         | `company.note:create` |
| Update Note | `PATCH /notes/{noteId}` (`PUT` alias) | `company.note:update` |
| Delete Note | `DELETE /notes/{noteId}`              | `company.note:delete` |

***

## Filtering (List Notes)

| Query Param  | Description                                                             |
| ------------ | ----------------------------------------------------------------------- |
| `entityType` | Parent entity type (lowercase kebab-case slug, e.g. `event`) — required |
| `entityId`   | Parent entity ID — required                                             |
| `search`     | Filter to notes whose body contains this substring (case-insensitive)   |

***

## Pagination

The list endpoint uses 1-based pagination: `page=1` is the first page. Use `pageSize` to control the number of records per page (default 50).
