Notes

Update a note

Rewrites what a note says. Every field is optional, and anything you leave out keeps its current value.

Anyone can edit a note they wrote; editing someone else's needs permission to write notes. A note the token cannot see returns 404, and one it can see but may not change returns 403.

visibility is the author's to set: an edit from anybody else that changes it returns 403 and writes nothing at all, not even the rest of the payload. Sending back the value the note already has is accepted, so reading a note, changing one field and returning the whole thing works whoever you are.

The records a note is attached to are fixed once it is written, so record_type and record_id are not accepted here.

Formatting

content_html is HTML and replaces the whole body. It is the same shape GET /public-api/v1/notes/{id} hands back, so read that field, change the part you need and send the result — whatever you leave alone survives the edit untouched.

Markdown is not accepted here; sending the content that POST /public-api/v1/notes takes returns 422 naming content_html, rather than leaving the edit to vanish. The create endpoint takes Markdown because a new note has nothing to preserve, while an edit does, and Markdown cannot express mentions, images or merged table cells.

Task list items carry the state the editor reads back, so keep their attributes as they came:

<ul data-type="taskList">
  <li data-type="taskItem" data-checked="true"><p>Confirm budget</p></li>
  <li data-type="taskItem" data-checked="false"><p>Send the quote</p></li>
</ul>
patch/public-api/v1/notes/{id}

Request

  • Base URL
    https://app.hellobonsai.com
  • URL
    https://app.hellobonsai.com/public-api/v1/notes/{id}
  • Auth
    • OAuth 2
      Authorization code: https://app.hellobonsai.com/oauth/authorize
      Token URL: https://app.hellobonsai.com/oauth/token
    • or HTTP bearer

Path parameters

idstring uuid required

The note's id.

Request body

Example request

{
  "note": {
    "content_html": "<h2>Renewal call</h2><p>Signed off on the May launch.</p>",
    "title": "Renewal call",
    "date": "2026-06-15",
    "visibility": "author_only"
  }
}

Response

The note was updated.

Example response

{
  "data": {
    "id": "3f1c9b64-0c2d-4d19-9d4e-6c9a1f7b2f11",
    "title": "Kickoff call",
    "date": "2026-05-01",
    "visibility": "everyone",
    "created_by_member_id": 314,
    "created_at": "2026-04-14T09:12:04.000Z",
    "updated_at": "2026-04-14T09:12:04.000Z",
    "note_links": [
      {
        "id": 907,
        "record_id": 42,
        "record_type": "company"
      }
    ],
    "content_html": "<h2>Renewal call</h2><p>Agreed to send a <strong>revised quote</strong>.</p>",
    "content_plain_text": "Discussed the renewal and agreed to send a revised quote."
  },
  "meta": {
    "request_id": "b1f0d2c4-7a9e-4c3b-8d5f-1e2a3b4c5d6e"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.