Update Note
Update a personal note (partial — send only fields to change).
Only notes owned by the API key’s creator are writable; the shared corpus is
read-only over /v1, and anything else 404s. content_markdown is decoded back into
the note’s stored sections, and a section block this server does not recognise
round-trips untouched. When both fields are sent, title wins over any title in the
markdown front matter.
This endpoint never creates a note — topic_notes has no uniqueness constraint, and
duplicate rows break the app’s .maybeSingle() reads.
Authorizations
Org API key as Token token=ei_live_...
Path Parameters
Body
PUT /v1/notes/{id} → topic_notes. Only personal notes are writable; shared notes
are read-only over /v1. content_markdown is decoded back into the note's stored
sections — an unrecognised section block round-trips untouched. When both fields are
sent, title wins over any title in the markdown front matter.
Response
Successful Response
A topic note. content_markdown is the note's full body as a markdown document
(see api.notes_codec) — it is populated on GET /v1/notes/{id} and is null in
list responses, which carry metadata only.
scope is derived: 'shared' for the published global corpus, 'personal' for a
note owned by the API key's creator. The physical note_type vocabulary and the
structured_content JSONB shape are deliberately not exposed.