> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/open-webui/open-webui/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Note

Create a new note for the authenticated user.

## Authorization

Requires user permission `features.notes` or admin role.

## Request Body

<ParamField body="title" type="string" required>
  Title of the note
</ParamField>

<ParamField body="data" type="object" optional>
  Note content data

  <Expandable title="properties">
    <ParamField body="content.md" type="string">
      Markdown content of the note
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="folder_id" type="string" optional>
  ID of the folder to place the note in
</ParamField>

<ParamField body="access_grants" type="array" optional>
  Access control grants for sharing the note

  <Expandable title="properties">
    <ParamField body="grantee_type" type="string">
      Type of grantee: `user`, `group`, or `public`
    </ParamField>

    <ParamField body="grantee_id" type="string">
      ID of the user or group (omit for public)
    </ParamField>

    <ParamField body="permission" type="string">
      Permission level: `read` or `write`
    </ParamField>
  </Expandable>
</ParamField>

## Response

Returns the created note object.

<ResponseField name="id" type="string" required>
  Unique identifier for the note
</ResponseField>

<ResponseField name="user_id" type="string" required>
  ID of the note owner
</ResponseField>

<ResponseField name="title" type="string" required>
  Title of the note
</ResponseField>

<ResponseField name="data" type="object" optional>
  Note content data
</ResponseField>

<ResponseField name="folder_id" type="string" optional>
  ID of the folder containing the note
</ResponseField>

<ResponseField name="access_grants" type="array">
  Access control grants for the note
</ResponseField>

<ResponseField name="updated_at" type="integer" required>
  Unix timestamp of last update
</ResponseField>

<ResponseField name="created_at" type="integer" required>
  Unix timestamp of creation
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://your-domain.com/api/notes/create" \
    -H "Authorization: Bearer YOUR_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "title": "Project Ideas",
      "data": {
        "content": {
          "md": "# New Feature Ideas\n\n- Add dark mode\n- Improve search"
        }
      }
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "id": "note_xyz789",
    "user_id": "user_123",
    "title": "Project Ideas",
    "data": {
      "content": {
        "md": "# New Feature Ideas\n\n- Add dark mode\n- Improve search"
      }
    },
    "folder_id": null,
    "access_grants": [],
    "updated_at": 1709395200,
    "created_at": 1709395200
  }
  ```

  ```json 401 Unauthorized theme={null}
  {
    "detail": "Unauthorized"
  }
  ```

  ```json 400 Bad Request theme={null}
  {
    "detail": "An error occurred"
  }
  ```
</ResponseExample>

## Access Control

* Users must have `features.notes` permission enabled
* The authenticated user becomes the owner of the note
* Access grants are filtered based on user permissions
* Public sharing requires `sharing.public_notes` permission
