Skip to main content
The API reads and writes the notes and folders of RevNotes, the same ones you see in the web app. An AI app can write up a run’s results as a note, add to your lab notes, or read a note you point it to.
  • Notes have a title and a body. Their ids start with note_.
  • Folders hold notes and don’t nest. Their ids start with notefld_.
  • A note or folder can be linked to a project. Project members can then see it.

Who can see a note

A note’s owner is the person who wrote it. Folders belong to whoever created them. Anyone else needs to be in the owner’s organization, and then has the strongest access of:
  • a share of the note (read or write)
  • a share of the note’s folder (read or write), which covers every note in it
  • owning the note’s folder (write)
  • their role in the note’s project, or in its folder’s project: owners and editors can write, viewers can read
Notes and folders you can’t see answer 404 NOT_FOUND, so the API doesn’t reveal that they exist. Each note and folder has access, which says what you can do:

List and read notes

GET /v1/notes lists the notes you can read, most recently changed first. It returns titles and metadata, not content. Filter with folderId, projectId, or q, which matches titles.
GET /v1/notes/{noteId} returns a note with its content, as markdown by default:
GET /v1/note-folders lists the folders you can read, with how many notes each holds.

Markdown and HTML

The web app stores notes as HTML from its editor. The API speaks markdown by default and HTML when you ask:
  • Reading: format=html returns the note as stored, formatting included.
  • Writing: send "format": "html" with HTML content. Markdown is converted to the HTML the editor uses. HTML is cleaned to the same elements, so the note opens in the editor as you wrote it.
Markdown can’t carry everything the editor can. Reading a note as markdown drops:
  • colours, font sizes and text alignment
  • image sizes
  • merged table cells (the extra columns stay empty)
Tables become markdown tables, with the first row as the header. Images stay as links. Underlined text comes back as inline HTML, and math as $…$. Notes written before the rich editor are plain text in either format. These losses matter only when you replace a note’s body. Adding to a note never changes what is already in it.

Create a note

You own the notes you create. folderId needs write access to that folder; a note in a project’s folder joins that project. projectId links the note to a project where you are an editor or owner. Create a folder with POST /v1/note-folders and a name. Names must be unique among your folders; a duplicate answers 409 CONFLICT. Rename a folder with PATCH /v1/note-folders/{noteFolderId}.

Change a note

PATCH /v1/notes/{noteId} renames a note, adds to its end, or replaces its body. It needs write access.

Add to the end

Prefer append. It adds to the end of the note and leaves the rest, formatting included, as it is.

Replace the body

content replaces the whole body. It needs expectedUpdatedAt: the note’s updatedAt when you read it.
If the note has been saved since, nothing changes and the API answers 409 CONFLICT. The web app saves as people type, so read the note again and retry.
Replacing a formatted note with markdown drops its colours, font sizes and alignment. To edit a formatted note in place, read it with format=html, change the HTML and send it back with "format": "html".
You can’t send content and append together.

Share notes and folders

Only a note’s or folder’s owner can share it, with active members of their organization. Give each person as an email or a user_… id from GET /v1/org/members.
  • permission is read (the default) or write.
  • Sharing again with someone who has the note sets their permission to the new one.
  • Sharing a folder with POST /v1/note-folders/{noteFolderId}/shares gives access to every note in it, including notes added later.
  • Nobody is notified. Tell people yourself.
GET …/shares lists a note’s or folder’s shares. The owner sees every share; anyone else sees only their own. People who reach a note through its folder or a project aren’t listed. DELETE …/shares/{noteShareId} removes a share. The owner can remove any share; the person it was shared with can remove their own. They may keep access through the note’s folder or a project.

Delete a note

DELETE /v1/notes/{noteId} deletes a note and its shares for good. There is no trash. Only the note’s owner can delete it, and images it links to are not deleted. Deleting is available in the REST API only, not through MCP.

Limits

Not in this version

  • Uploading images. Link images by URL instead.
  • Moving a note to another folder.
  • Deleting folders.
  • Searching note content. q matches titles only.
  • Exporting notes.
  • Deleting notes, or sharing folders, through MCP. Use the REST API.

Scopes

MCP tools

The tools steer apps to append_to_note for adding to a note, and to HTML for editing a formatted note. For example: “Summarize the results of run_3f2b… and add them to my Round 3 screening note.” See the tools reference for each tool’s arguments.