Open Morse

Reference

Knowledge

22 routes, generated from Morse’s own OpenAPI document. Every path below hangs off the base URL, and every one needs the bearer header.

The examples are built from each route’s schema, so the shapes and types are exactly what the API declares. The values are illustrative, and no one has run them.

The notes you can see, newest first, each with its folder and what you may do with it.

GET/knowledge

GET/knowledge

curl "$MORSE/knowledge" \
  -H "Authorization: Bearer $MORSE_TOKEN"
200
[
  {
    "audience": "…",
    "can_delete": true,
    "can_edit": true,
    "can_manage": true,
    "can_move": true,
    "chunks": 1,
    "client_name": "Priya Shah",
    "created_by": "…",
    "embedded": 1,
    "excerpt": "…",
    "file_name": "Priya Shah",
    "file_size": 3,
    "file_type": "…",
    "folder_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
    "folder_name": "Priya Shah",
    "formatting": true,
    "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
    "kind": "…",
    "owner_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
    "role": "…",
    "scope": "…",
    "source": "…",
    "team_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
    "team_name": "Priya Shah",
    "tidied": true,
    "title": "Pricing review",
    "truncated": true,
    "updated_at": "2026-10-02T10:30:00+05:30",
    "via": "…"
  }
]

Add a note to knowledge, in a folder: folder_id, from GET /api/knowledge/folders.

POST/knowledge

A client from before folders may send audience instead: personal, team (with team_id) or company.

POST/knowledge

curl -X POST "$MORSE/knowledge" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "body": "Annual plans are billed up front.", "title": "Pricing review" }'
201
{
  "audience": "…",
  "body": "Annual plans are billed up front.",
  "can_delete": true,
  "can_edit": true,
  "can_manage": true,
  "can_move": true,
  "chunks": 1,
  "client_name": "Priya Shah",
  "created_by": "…",
  "embedded": 1,
  "excerpt": "…",
  "file_name": "Priya Shah",
  "file_size": 3,
  "file_type": "…",
  "folder_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "folder_name": "Priya Shah",
  "formatting": true,
  "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "kind": "…",
  "owner_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "role": "…",
  "scope": "…",
  "source": "…",
  "team_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "team_name": "Priya Shah",
  "tidied": true,
  "title": "Pricing review",
  "truncated": true,
  "updated_at": "2026-10-02T10:30:00+05:30",
  "via": "…"
}

Ids of the notes you can open whose text matches q, anywhere in them, including files and folders you have switched off.

GET/knowledge/find

GET/knowledge/find

curl "$MORSE/knowledge/find" \
  -H "Authorization: Bearer $MORSE_TOKEN"
200
[
  "…"
]

Every folder you can open or manage, and "Shared with me": notes shared with you directly whose folder you can't see.

GET/knowledge/folders

A note's folder_id comes from here.

GET/knowledge/folders

curl "$MORSE/knowledge/folders" \
  -H "Authorization: Bearer $MORSE_TOKEN"
200
{
  "direct": {
    "active": true,
    "items": 1
  },
  "folders": [
    {
      "active": true,
      "created_at": "2026-10-02T10:30:00+05:30",
      "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
      "is_global": true,
      "items": 1,
      "manages": true,
      "name": "Priya Shah",
      "owner_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
      "owner_name": "Priya Shah",
      "role": "…",
      "shared": {
        "everyone": true,
        "people": 1,
        "teams": [
          "…"
        ]
      },
      "updated_at": "2026-10-02T10:30:00+05:30"
    }
  ]
}

Create a folder of your own, shared with nobody yet.

POST/knowledge/folders

POST/knowledge/folders

curl -X POST "$MORSE/knowledge/folders" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Priya Shah" }'
201
{
  "active": true,
  "created_at": "2026-10-02T10:30:00+05:30",
  "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "is_global": true,
  "items": 1,
  "manages": true,
  "name": "Priya Shah",
  "owner_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "owner_name": "Priya Shah",
  "role": "…",
  "shared": {
    "everyone": true,
    "people": 1,
    "teams": [
      "…"
    ]
  },
  "updated_at": "2026-10-02T10:30:00+05:30"
}

Rename a folder.

PATCH/knowledge/folders/{folder_id}

Whoever manages it, or an admin.

PATCH/knowledge/folders/{folder_id}

curl -X PATCH "$MORSE/knowledge/folders/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Priya Shah" }'
200
{
  "active": true,
  "created_at": "2026-10-02T10:30:00+05:30",
  "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "is_global": true,
  "items": 1,
  "manages": true,
  "name": "Priya Shah",
  "owner_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "owner_name": "Priya Shah",
  "role": "…",
  "shared": {
    "everyone": true,
    "people": 1,
    "teams": [
      "…"
    ]
  },
  "updated_at": "2026-10-02T10:30:00+05:30"
}

The folder and every note in it (F7), then the files those notes were made from, once nothing points at them.

DELETE/knowledge/folders/{folder_id}

DELETE/knowledge/folders/{folder_id}

curl -X DELETE "$MORSE/knowledge/folders/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60" \
  -H "Authorization: Bearer $MORSE_TOKEN"

Switch a folder on or off for your meeting assistant (Morse Intelligence).

PUT/knowledge/folders/{folder_id}/active

Only for a folder you can open.

PUT/knowledge/folders/{folder_id}/active

curl -X PUT "$MORSE/knowledge/folders/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60/active" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "active": true }'

Who a folder is shared with, and whether as viewer or editor.

GET/knowledge/folders/{folder_id}/shares

GET/knowledge/folders/{folder_id}/shares

curl "$MORSE/knowledge/folders/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60/shares" \
  -H "Authorization: Bearer $MORSE_TOKEN"
200
[
  {
    "email": "priya@neuralarc.ai",
    "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
    "kind": "…",
    "name": "Priya Shah",
    "role": "…"
  }
]

Replace who a folder is shared with.

PUT/knowledge/folders/{folder_id}/shares

Each entry is a person (email), a team (id) or everyone, as viewer or editor. Only whoever manages the folder.

PUT/knowledge/folders/{folder_id}/shares

curl -X PUT "$MORSE/knowledge/folders/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60/shares" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '[ { "kind": "…", "role": "…" } ]'
200
[
  {
    "email": "priya@neuralarc.ai",
    "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
    "kind": "…",
    "name": "Priya Shah",
    "role": "…"
  }
]

Propose a safe layout for a draft without saving it.

POST/knowledge/format

knowledge_format.tidy already fences the supplied text and refuses a reply that adds, removes, or changes a word. Keeping this request outside the write path makes the choice explicit: the browser alone applies the proposal to its draft, then a normal Save persists it. The window counts come back with the proposal, because a draft that needed nothing and a draft whose layout was refused are the same text and not the same news.

POST/knowledge/format

curl -X POST "$MORSE/knowledge/format" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "body": "Annual plans are billed up front." }'
200
{
  "body": "Annual plans are billed up front.",
  "changed": true,
  "kept_as_pasted": 1,
  "windows": 1
}

The switch for "Shared with me" (F9).

PUT/knowledge/shared/active

PUT/knowledge/shared/active

curl -X PUT "$MORSE/knowledge/shared/active" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "active": true }'

Whether this server takes knowledge files, how large, and of which types.

GET/knowledge/uploads

GET/knowledge/uploads

curl "$MORSE/knowledge/uploads" \
  -H "Authorization: Bearer $MORSE_TOKEN"
200
{
  "available": true,
  "max_bytes": 1,
  "types": [
    "…"
  ]
}

Step 1 of adding a file to knowledge: a short-lived URL to PUT it to.

POST/knowledge/uploads

PDF, Word, Excel, CSV, text or Markdown.

POST/knowledge/uploads

curl -X POST "$MORSE/knowledge/uploads" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "file_name": "Priya Shah", "file_type": "…", "size": 3 }'
201
{
  "content_type": "image/jpeg",
  "upload": "…",
  "url": "https://onmorse.com/priya"
}

Copy the upload, check and read the copy, and keep it as a note.

POST/knowledge/uploads/complete

The note's fields are checked before any of that, so a refusal about them costs nobody a download. The upload itself is deleted whatever happens; the copy is kept only when the note is saved.

POST/knowledge/uploads/complete

curl -X POST "$MORSE/knowledge/uploads/complete" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Pricing review", "upload": "…" }'
201
{
  "audience": "…",
  "body": "Annual plans are billed up front.",
  "can_delete": true,
  "can_edit": true,
  "can_manage": true,
  "can_move": true,
  "chunks": 1,
  "client_name": "Priya Shah",
  "created_by": "…",
  "embedded": 1,
  "excerpt": "…",
  "file_name": "Priya Shah",
  "file_size": 3,
  "file_type": "…",
  "folder_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "folder_name": "Priya Shah",
  "formatting": true,
  "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "kind": "…",
  "owner_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "role": "…",
  "scope": "…",
  "source": "…",
  "team_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "team_name": "Priya Shah",
  "tidied": true,
  "title": "Pricing review",
  "truncated": true,
  "updated_at": "2026-10-02T10:30:00+05:30",
  "via": "…"
}

One piece of knowledge in full, if you can see it.

GET/knowledge/{doc_id}

GET/knowledge/{doc_id}

curl "$MORSE/knowledge/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60" \
  -H "Authorization: Bearer $MORSE_TOKEN"
200
{
  "audience": "…",
  "body": "Annual plans are billed up front.",
  "can_delete": true,
  "can_edit": true,
  "can_manage": true,
  "can_move": true,
  "chunks": 1,
  "client_name": "Priya Shah",
  "created_by": "…",
  "embedded": 1,
  "excerpt": "…",
  "file_name": "Priya Shah",
  "file_size": 3,
  "file_type": "…",
  "folder_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "folder_name": "Priya Shah",
  "formatting": true,
  "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "kind": "…",
  "owner_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "role": "…",
  "scope": "…",
  "source": "…",
  "team_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "team_name": "Priya Shah",
  "tidied": true,
  "title": "Pricing review",
  "truncated": true,
  "updated_at": "2026-10-02T10:30:00+05:30",
  "via": "…"
}

Replace a note's title or text, or move it with another folder_id, if you may edit it.

PUT/knowledge/{doc_id}

PUT/knowledge/{doc_id}

curl -X PUT "$MORSE/knowledge/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "body": "Annual plans are billed up front.", "title": "Pricing review" }'
200
{
  "audience": "…",
  "body": "Annual plans are billed up front.",
  "can_delete": true,
  "can_edit": true,
  "can_manage": true,
  "can_move": true,
  "chunks": 1,
  "client_name": "Priya Shah",
  "created_by": "…",
  "embedded": 1,
  "excerpt": "…",
  "file_name": "Priya Shah",
  "file_size": 3,
  "file_type": "…",
  "folder_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "folder_name": "Priya Shah",
  "formatting": true,
  "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "kind": "…",
  "owner_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "role": "…",
  "scope": "…",
  "source": "…",
  "team_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "team_name": "Priya Shah",
  "tidied": true,
  "title": "Pricing review",
  "truncated": true,
  "updated_at": "2026-10-02T10:30:00+05:30",
  "via": "…"
}

Delete a piece of knowledge, and its file if it has one.

DELETE/knowledge/{doc_id}

DELETE/knowledge/{doc_id}

curl -X DELETE "$MORSE/knowledge/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60" \
  -H "Authorization: Bearer $MORSE_TOKEN"

The original file, for someone who can see its note: a short-lived link, downloaded under its own name and never rendered in the page.

GET/knowledge/{doc_id}/file

GET/knowledge/{doc_id}/file

curl "$MORSE/knowledge/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60/file" \
  -H "Authorization: Bearer $MORSE_TOKEN"

A tidied note back as it was pasted, for a tidy someone doesn't want.

POST/knowledge/{doc_id}/restore-pasted

POST/knowledge/{doc_id}/restore-pasted

curl -X POST "$MORSE/knowledge/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60/restore-pasted" \
  -H "Authorization: Bearer $MORSE_TOKEN"
200
{
  "audience": "…",
  "body": "Annual plans are billed up front.",
  "can_delete": true,
  "can_edit": true,
  "can_manage": true,
  "can_move": true,
  "chunks": 1,
  "client_name": "Priya Shah",
  "created_by": "…",
  "embedded": 1,
  "excerpt": "…",
  "file_name": "Priya Shah",
  "file_size": 3,
  "file_type": "…",
  "folder_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "folder_name": "Priya Shah",
  "formatting": true,
  "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "kind": "…",
  "owner_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "role": "…",
  "scope": "…",
  "source": "…",
  "team_id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
  "team_name": "Priya Shah",
  "tidied": true,
  "title": "Pricing review",
  "truncated": true,
  "updated_at": "2026-10-02T10:30:00+05:30",
  "via": "…"
}

Who a note is shared with on its own, beyond its folder (D2).

GET/knowledge/{doc_id}/shares

GET/knowledge/{doc_id}/shares

curl "$MORSE/knowledge/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60/shares" \
  -H "Authorization: Bearer $MORSE_TOKEN"
200
[
  {
    "email": "priya@neuralarc.ai",
    "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
    "kind": "…",
    "name": "Priya Shah",
    "role": "…"
  }
]

Replace who one note is shared with beyond its folder, in the same shape as a folder's shares.

PUT/knowledge/{doc_id}/shares

Whoever added the note or manages its folder.

PUT/knowledge/{doc_id}/shares

curl -X PUT "$MORSE/knowledge/3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60/shares" \
  -H "Authorization: Bearer $MORSE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '[ { "kind": "…", "role": "…" } ]'
200
[
  {
    "email": "priya@neuralarc.ai",
    "id": "3f9c1a24-5e6f-4b31-9a77-1b2c3d4e5f60",
    "kind": "…",
    "name": "Priya Shah",
    "role": "…"
  }
]