DocumentationAPI reference

Rust · 0.1.0

Create Memo

POST /api/v1/memos

MemoService · MemoService_CreateMemo

Protocol-derived reference. Authorization and instance policy still apply. Schema descriptions are inherited from the MIT-licensed application contract; examples here are not executed against a live server.

Access

Requires an authenticated account. Creating in a space or participating on an existing memo applies additional placement/read checks; authentication alone is not permission to modify someone else's memo.

Create a private test memo

The JSON body is the Memo itself. The server assigns ownership and, unless memoId is supplied, a new UID. Omitted visibility defaults to PRIVATE. Tags and computed properties are derived from Markdown. Save the returned name for later reads and edits; retrying a POST with a generated ID can create a second memo.

curl --fail-with-body -X POST \
  -H "Authorization: Bearer $MEMOS_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"content":"API test memo","visibility":"PRIVATE","state":"NORMAL"}' \
  "$MEMOS_URL/api/v1/memos"

Creation ignores state and pinned

The shared Memo schema includes state and pinned, but creation does not write either field. A new memo or comment starts in NORMAL state and is unpinned even if the request supplies ARCHIVED or pinned: true. Create the record first, then use UpdateMemo with the supported state or pinned updateMask paths if you need to change those values. Do not treat every field in the reusable schema as accepted on creation.

Request

CreateMemo creates a memo. The request body is a Memo; set its content (Markdown) and visibility (PRIVATE | PROTECTED | PUBLIC | SPACE, default PRIVATE). The memo is owned by the authenticated user; requires authentication.

POST/api/v1/memos

Parameters

Name / locationType / requirementDescription
memoId
query
string
Not marked required in OpenAPI
Optional. The memo ID to use for this memo. If empty, a unique ID will be generated. Format: ^[a-zA-Z0-9]([a-zA-Z0-9-]{0,34}[a-zA-Z0-9])?$

Request body

Required

application/json · Memo

Responses

200 · OK

application/json · Memo

default · Default error response

application/json · Status

Complete operation definition

All declared constraints, media types and response details are retained below. Schema references link to their complete definitions.

Open JSON definition
{
  "tags": [
    "MemoService"
  ],
  "description": "CreateMemo creates a memo. The request body is a Memo; set its content\n (Markdown) and visibility (PRIVATE | PROTECTED | PUBLIC | SPACE,\n default PRIVATE).\n The memo is owned by the authenticated user; requires authentication.",
  "operationId": "MemoService_CreateMemo",
  "parameters": [
    {
      "name": "memoId",
      "in": "query",
      "description": "Optional. The memo ID to use for this memo.\n If empty, a unique ID will be generated.\n Format: ^[a-zA-Z0-9]([a-zA-Z0-9-]{0,34}[a-zA-Z0-9])?$",
      "schema": {
        "type": "string"
      }
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/Memo"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "OK",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Memo"
          }
        }
      }
    },
    "default": {
      "description": "Default error response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Status"
          }
        }
      }
    }
  }
}