Update a note
Partially updates a note’s name and/or TipTap data body. See UserNoteData for supported block and inline mark types. Scoped to your integration’s institution via Basic Auth credentials.
PATCH
/users/{id}/notes/{noteId}Path parameters
idstringrequirednoteIdstringrequiredRequest body
requiredapplication/jsonnoteNamestringdataUserNoteDataTipTap/ProseMirror JSON document stored in `data`. Root `type` must be `"doc"`. The Fuxam dashboard user-notes editor uses the formatted-textarea stack (StarterKit + lists, task lists, alignment, colors, links, etc.). The API stores valid TipTap JSON as-is; nodes the dashboard cannot render may be preserved but not editable in the UI.
Show propertiesHide properties
typestringrequiredRoot document type. Only `"doc"` is supported.
Allowed:
doccontentobject[]requiredTop-level block nodes inside the document. Supported block `type` values:
- `paragraph` — plain text block; may include `attrs.textAlign` (`left`, `center`, `right`, `justify`) and inline `text` / `hardBreak` children.
- `heading` — heading block; set `attrs.level` to `1`, `2`, or `3` (dashboard headings).
- `bulletList` / `orderedList` — lists containing `listItem` nodes.
- `listItem` — list row; usually wraps one or more `paragraph` nodes.
- `taskList` / `taskItem` — checklist; `taskItem` supports `attrs.checked` (`true` / `false`).
- `blockquote` — quoted paragraph(s).
- `horizontalRule` — divider line (no `content`).
Not exposed in the dashboard notes slash menu (avoid via API unless you accept limited UI support): `codeBlock`, `image`, `file`, `table`, `youtube`, `columns`.
Show propertiesHide properties
Array of
objecttypestringrequiredBlock node type. See `content` array description for supported values.
attrsobject | nullBlock attributes. Common keys: `textAlign` on `paragraph`/`heading`; `level` (1–3) on `heading`; `checked` on `taskItem`.
Show propertiesHide properties
classstring | nulltextAlignstring | nullAllowed:
leftcenterrightjustifylevelinteger | nullHeading level (`heading` blocks only).
min 1 · max 6
checkedboolean | nullChecked state (`taskItem` blocks only).
contentobject[]Child nodes. For `paragraph`/`heading`: inline `text` and `hardBreak`. For lists: `listItem` or `taskItem`. For `listItem`/`taskItem`: usually nested `paragraph` blocks.
Show propertiesHide properties
Array of
objecttypestringrequiredInline node `text` (with optional `marks`) or block `hardBreak`. List blocks nest `listItem` / `taskItem` here.
textstringPlain text (`type: "text"` only).
marksobject[]Inline formatting on a `text` node. Supported mark `type` values: `bold`, `italic`, `strike`, `code`, `underline`, `highlight`, `subscript`, `superscript`, `link` (`attrs.href`), `textStyle` (`attrs.color`, `attrs.fontSize`).
Show propertiesHide properties
Array of
objecttypestringrequiredattrsobjectResponses
200Note updated
dataUserNoterequiredShow propertiesHide properties
idstringrequirednoteNamestringrequireddataUserNoteDatarequiredTipTap/ProseMirror JSON document stored in `data`. Root `type` must be `"doc"`. The Fuxam dashboard user-notes editor uses the formatted-textarea stack (StarterKit + lists, task lists, alignment, colors, links, etc.). The API stores valid TipTap JSON as-is; nodes the dashboard cannot render may be preserved but not editable in the UI.
Show propertiesHide properties
typestringrequiredRoot document type. Only `"doc"` is supported.
Allowed:
doccontentobject[]requiredTop-level block nodes inside the document. Supported block `type` values:
- `paragraph` — plain text block; may include `attrs.textAlign` (`left`, `center`, `right`, `justify`) and inline `text` / `hardBreak` children.
- `heading` — heading block; set `attrs.level` to `1`, `2`, or `3` (dashboard headings).
- `bulletList` / `orderedList` — lists containing `listItem` nodes.
- `listItem` — list row; usually wraps one or more `paragraph` nodes.
- `taskList` / `taskItem` — checklist; `taskItem` supports `attrs.checked` (`true` / `false`).
- `blockquote` — quoted paragraph(s).
- `horizontalRule` — divider line (no `content`).
Not exposed in the dashboard notes slash menu (avoid via API unless you accept limited UI support): `codeBlock`, `image`, `file`, `table`, `youtube`, `columns`.
Show propertiesHide properties
Array of
objecttypestringrequiredBlock node type. See `content` array description for supported values.
attrsobject | nullBlock attributes. Common keys: `textAlign` on `paragraph`/`heading`; `level` (1–3) on `heading`; `checked` on `taskItem`.
Show propertiesHide properties
classstring | nulltextAlignstring | nullAllowed:
leftcenterrightjustifylevelinteger | nullHeading level (`heading` blocks only).
min 1 · max 6
checkedboolean | nullChecked state (`taskItem` blocks only).
contentobject[]Child nodes. For `paragraph`/`heading`: inline `text` and `hardBreak`. For lists: `listItem` or `taskItem`. For `listItem`/`taskItem`: usually nested `paragraph` blocks.
Show propertiesHide properties
Array of
objecttypestringrequiredInline node `text` (with optional `marks`) or block `hardBreak`. List blocks nest `listItem` / `taskItem` here.
textstringPlain text (`type: "text"` only).
marksobject[]Inline formatting on a `text` node. Supported mark `type` values: `bold`, `italic`, `strike`, `code`, `underline`, `highlight`, `subscript`, `superscript`, `link` (`attrs.href`), `textStyle` (`attrs.color`, `attrs.fontSize`).
Show propertiesHide properties
Array of
objecttypestringrequiredattrsobjectcreatorNamestringrequiredcreatedAtstring<date-time>requiredupdatedAtstring<date-time>requiredmetaResponseMetarequiredShow propertiesHide properties
requestIdstringrequiredtimestampstring<date-time>requiredversionstringrequiredAllowed:
v4400Bad Request
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring401Unauthorized
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring404Not Found
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring429Too Many Requests
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestring500Internal Server Error
typestringrequiredAllowed:
errorcodestringrequiredAllowed:
bad_requestunauthorizedforbiddenresource_not_foundconflictvalidation_failedidempotency_key_reusedrate_limit_exceededinternal_errortitlestringrequiredstatusintegerrequireddetailstringrequiredinstancestringerrorsobject[]Show propertiesHide properties
Array of
objectfieldstringmessagestringRequest
curl -X PATCH "https://fuxam.app/api/v4/users/string/notes/string" \
-H "Content-Type: application/json" \
-d '{
"noteName": "Onboarding notes",
"data": {
"type": "doc",
"content": [
{
"type": "heading",
"attrs": {
"level": 2,
"textAlign": "left"
},
"content": [
{
"type": "text",
"text": "Onboarding"
}
]
},
{
"type": "paragraph",
"attrs": {
"textAlign": "left"
},
"content": [
{
"type": "text",
"text": "Prefers "
},
{
"type": "text",
"marks": [
{
"type": "bold"
}
],
"text": "morning"
},
{
"type": "text",
"text": " sessions."
}
]
},
{
"type": "bulletList",
"content": [
{
"type": "listItem",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Bring laptop"
}
]
}
]
}
]
}
]
}
}'const response = await fetch("https://fuxam.app/api/v4/users/string/notes/string", {
method: "PATCH",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
"noteName": "Onboarding notes",
"data": {
"type": "doc",
"content": [
{
"type": "heading",
"attrs": {
"level": 2,
"textAlign": "left"
},
"content": [
{
"type": "text",
"text": "Onboarding"
}
]
},
{
"type": "paragraph",
"attrs": {
"textAlign": "left"
},
"content": [
{
"type": "text",
"text": "Prefers "
},
{
"type": "text",
"marks": [
{
"type": "bold"
}
],
"text": "morning"
},
{
"type": "text",
"text": " sessions."
}
]
},
{
"type": "bulletList",
"content": [
{
"type": "listItem",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Bring laptop"
}
]
}
]
}
]
}
]
}
})
});import requests
response = requests.patch(
"https://fuxam.app/api/v4/users/string/notes/string",
headers={
"Content-Type": "application/json"
},
json={
"noteName": "Onboarding notes",
"data": {
"type": "doc",
"content": [
{
"type": "heading",
"attrs": {
"level": 2,
"textAlign": "left"
},
"content": [
{
"type": "text",
"text": "Onboarding"
}
]
},
{
"type": "paragraph",
"attrs": {
"textAlign": "left"
},
"content": [
{
"type": "text",
"text": "Prefers "
},
{
"type": "text",
"marks": [
{
"type": "bold"
}
],
"text": "morning"
},
{
"type": "text",
"text": " sessions."
}
]
},
{
"type": "bulletList",
"content": [
{
"type": "listItem",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Bring laptop"
}
]
}
]
}
]
}
]
}
},
)Response
{
"data": {
"id": "string",
"noteName": "string",
"data": {
"type": "doc",
"content": [
{
"type": "heading",
"attrs": {
"level": 2,
"textAlign": "left"
},
"content": [
{
"type": "text",
"text": "Onboarding"
}
]
},
{
"type": "paragraph",
"attrs": {
"textAlign": "left"
},
"content": [
{
"type": "text",
"text": "Prefers "
},
{
"type": "text",
"marks": [
{
"type": "bold"
}
],
"text": "morning"
},
{
"type": "text",
"text": " sessions."
}
]
},
{
"type": "bulletList",
"content": [
{
"type": "listItem",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "Bring laptop"
}
]
}
]
}
]
}
]
},
"creatorName": "string",
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z"
},
"meta": {
"requestId": "req_1234567890_abc",
"timestamp": "2026-06-02T07:00:00.000Z",
"version": "v4"
}
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}{
"type": "error",
"code": "resource_not_found",
"title": "Not Found",
"status": 404,
"detail": "Course not found",
"instance": "req_1234567890_abc",
"errors": [
{
"field": "string",
"message": "string"
}
]
}