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

# Set Person Note

> Write your workspace's note on a person

Write the [note](https://docs.clustr-ai.com/notes.md) your workspace keeps on a person. There is one per person,
whether they are a connector, a prospect or both, and any member can edit it. It shows
on the person's page and when someone requests an intro through them.

> [!WARNING]
>
> **A write replaces the note.** To add a line, read it with
> [Get Person Note](https://docs.clustr-ai.com/api-reference/get-person-note.md) and send the combined text.

The person must be one of your connectors or appear in one of your warm intros;
anyone else answers `404`. An empty or whitespace-only `body` clears the note,
exactly as [Clear Person Note](https://docs.clustr-ai.com/api-reference/clear-person-note.md) does; a missing
`body` is a `400`, so a request that forgot the field cannot wipe the note. Any
member of the workspace can edit the note, which lives in Clustr only.

```bash cURL theme={null}
curl -X PUT "https://api.clustr-ai.com/api/public/v2/persons/per_bb771nzbxnmw9dhsnwhbt47j9b/note" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"body": "Investor in Acme. Ask Anaïs before requesting an intro through him."}'
```

```json 200 theme={null}
{
  "success": true,
  "data": {
    "person_id": "per_bb771nzbxnmw9dhsnwhbt47j9b",
    "linkedin_id": "nicdelaye",
    "note": {
      "body": "Investor in Acme. Ask Anaïs before requesting an intro through him.",
      "created_at": "2026-09-28T09:12:00Z",
      "created_by_user_id": null,
      "updated_at": "2026-09-28T09:12:00Z",
      "updated_by_user_id": null,
      "updated_by_name": null
    }
  }
}
```

```json 404 theme={null}
{
  "success": false,
  "error": { "message": "Person not found in this workspace", "code": "NOT_FOUND" }
}
```


## OpenAPI

````yaml PUT /v2/persons/{person_id}/note
openapi: 3.1.0
info:
  title: Clustr Public API
  description: >
    Programmatic access to your Clustr network: import connectors, search warm
    intros (opportunities), and manage target accounts.


    ## Authentication

    All endpoints require a Bearer token (API key) in the `Authorization`
    header.


    ```

    Authorization: Bearer <your_api_key>

    ```


    API keys can be created and managed from the [API settings
    page](https://app.clustr-ai.com/api).
  version: '1.0'
  contact:
    name: Clustr Support
    url: https://clustr-ai.com
servers:
  - url: https://api.clustr-ai.com/api/public
    description: Production
security:
  - BearerAuth: []
paths:
  /v2/persons/{person_id}/note:
    parameters:
      - name: person_id
        in: path
        required: true
        schema:
          type: string
        description: >-
          The person's Clustr ID (`per_…`), as [List
          Connectors](/api-reference/list-connectors) and

          the person record return it. The ID of a person since merged into
          another answers for that

          person.
        example: per_5pbjp3wksarrre19ygfr8mvtzc
    put:
      tags:
        - Notes
      summary: Set Person Note
      description: >-
        Writes the note on a person, replacing the current one. To add to a
        note, read it and send the combined text. The person must be one of your
        connectors or appear in one of your warm intros. An empty body clears
        the note, as DELETE does; a missing body answers 400. Any member can
        edit the note, and it stays in Clustr.
      operationId: setPersonNote
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - body
              properties:
                body:
                  type: string
                  maxLength: 10000
                  description: >-
                    The note. Surrounding whitespace is trimmed. An empty or
                    whitespace-only body clears the note, as DELETE does.
      responses:
        '200':
          description: The stored note
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    $ref: '#/components/schemas/PersonNoteV2Result'
        '400':
          description: >-
            The body is missing or longer than 10,000 characters, or the id is
            not a person's Clustr ID
        '401':
          description: Invalid or missing API key
        '404':
          description: >-
            No person has this Clustr ID, or the person is not one of your
            connectors and appears in none of your warm intros
components:
  schemas:
    PersonNoteV2Result:
      type: object
      properties:
        person_id:
          type: string
          description: >-
            The person's Clustr ID, for example
            `per_mr53zbt97mvqgk1v08k6v2z754`. When you asked with the ID

            of a person since merged into another, this is the surviving
            person's.
          example: per_mr53zbt97mvqgk1v08k6v2z754
        linkedin_id:
          type: string
          nullable: true
          description: The person's LinkedIn public identifier.
        note:
          allOf:
            - $ref: '#/components/schemas/PersonNoteV2'
          description: >-
            The note, or `null`.


            - `body`: the text

            - `created_at`, `created_by_user_id`: when a note was first written
            on this person, and by which member

            - `updated_at`, `updated_by_user_id`: the last edit, and the member
            who made it

            - `updated_by_name`: that member's name, for "edited by"


            `created_by_user_id`, `updated_by_user_id` and `updated_by_name` are
            `null` for a note written with an API key.
          nullable: true
    PersonNoteV2:
      type: object
      required:
        - body
        - created_at
        - updated_at
      properties:
        body:
          type: string
        created_at:
          type: string
          format: date-time
        created_by_user_id:
          type: string
          nullable: true
          description: >-
            The Clustr ID of the member who first wrote a note on this person,
            for example

            `usr_6dxajxhedsd6t1ed2kwdf58bhy`. Null for an API-key write.
          example: usr_6dxajxhedsd6t1ed2kwdf58bhy
        updated_at:
          type: string
          format: date-time
        updated_by_user_id:
          type: string
          nullable: true
          description: >-
            The Clustr ID of the member who last edited it, for example
            `usr_tqneqhvrdf7jy8hvg6zzd94b4y`.

            Null for an API-key write.
          example: usr_tqneqhvrdf7jy8hvg6zzd94b4y
        updated_by_name:
          type: string
          nullable: true
          description: That member's name, for "edited by". Null when unknown.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: The API key you created on the API settings page of the Clustr app.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.